Autor Tema: Programa corto pero no encuentro el fallo

0 Usuarios y 1 Visitante están viendo este tema.

10 Julio, 2015, 06:14 pm
Leído 1058 veces

Estudiantee

  • Aprendiz
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
 Dado el radio, realiza un programa que nos diga el area y el volumen de una esfera. El error que me da el compilador es el siguiente: linea 17 y linea 18: error expected expression before float.
Una ayudita por favor ;D

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define pi 3.1415
float area1(float radio){
return(4*pi*radio*radio);
}
float volumen1(float radio){
return(4/3*pi*radio*radio*radio);
}



int main(void){
float radio;
scanf("%f",&radio);
printf("%f\n",area1(float radio));
printf("%f\n",volumen1(float radio));


system("pause");
return(0);

}
Si alguien me invita a forocoches, se lo agradecería.

13 Julio, 2015, 07:35 am
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 4,698
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola

¿Ya lo has resuelto?


¿Que pasa si quitas "float" del la parte en rojo del programa?.

Dado el radio, realiza un programa que nos diga el area y el volumen de una esfera. El error que me da el compilador es el siguiente: linea 17 y linea 18: error expected expression before float.
Una ayudita por favor ;D

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define pi 3.1415
float area1(float radio){
return(4*pi*radio*radio);
}
float volumen1(float radio){
return(4/3*pi*radio*radio*radio);
}



int main(void){
float radio;
scanf("%f",&radio);
printf("%f\n",area1(float radio));
printf("%f\n",volumen1(float radio));



system("pause");
return(0);

}



Es que ya lo has declarado en la función principal y en las otras dos. No soy experto y hace tiempos no uso C++
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

13 Julio, 2015, 10:09 am
Respuesta #2

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,292
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)
Tal como te indica ingmarov, estás poniendo el tipo de datos "float" delante de las variables en una llamada a función. Eso es un error de sintaxis.

En cambio, si te interesara usar un "cast" (que no hace falta en tu programa), podrías poner la palabra "float" entre paréntesis: (float), para conseguir una conversión a tipo "float" de la expresión a la derecha.

Otro error: En tu fórmula de volumen pusiste 4/3*...
Eso está mal, porque 4/3 es división entera en C, lo cual da "1" en vez de 1.33333...

Para arreglarlo, hay que poner siempre constantes en punto flotante, así: 4.0/3.0.

Ah, y dicho sea de paso, no te cuesta nada poner una buena constante de pi:

#define  pi  3.14159265358979323846


Saludos.

13 Julio, 2015, 04:50 pm
Respuesta #3

Estudiantee

  • Aprendiz
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
Lo resolvi, gracias, era quitar el float
Si alguien me invita a forocoches, se lo agradecería.