29/01/2020, 08:21:48 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Renovado el procedimiento de inserción de archivos GEOGEBRA en los mensajes.
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Programa corto pero no encuentro el fallo  (Leído 972 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Estudiantee
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 423


Ver Perfil
« : 10/07/2015, 13:14:38 pm »

 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 :sonrisa_amplia:

#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);

}
En línea

Si alguien me invita a forocoches, se lo agradecería.
ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.447



Ver Perfil
« Respuesta #1 : 13/07/2015, 02:35:01 am »

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 :sonrisa_amplia:

#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++
En línea

No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...
argentinator
Consultar la FIRMAPEDIA __________________________________________________________________________________________________________________
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 7.283

Vean mis posts activos en mi página personal


Ver Perfil WWW
« Respuesta #2 : 13/07/2015, 05:09:47 am »

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.
En línea

Estudiantee
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 423


Ver Perfil
« Respuesta #3 : 13/07/2015, 11:50:26 am »

Lo resolvi, gracias, era quitar el float
En línea

Si alguien me invita a forocoches, se lo agradecería.
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!