• Lunes 29 de Abril de 2024, 03:30

Autor Tema:  Ejercicio En C - Ayuda  (Leído 1424 veces)

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Ejercicio En C - Ayuda
« en: Lunes 2 de Julio de 2007, 23:49 »
0
Hola estoy haciendo un ejercicio de C y el problema es el siguiente:
Citar
Al recibir como datos el radio, generatriz y la altura de un cono. Calcular e imprimir   el área de la base, el área lateral y el volúmen.
Área Base = PI * Radio2
Área Lateral = PI * Radio * Generatriz
Área Total = Área Base + Área Lateral
Volúmen = 1/2 * AB * ALT
Mi codificación es la siguiente:
Citar
#include <stdio.h>
#include <math.h>
main()
{
 float RAD, ALT, GEN, AB, AL, AT, VOL;
 printf( "Ingrese el radio \n" );
 scanf( "%f", &RAD );
 AB = M_PI * pow (RAD, 2);
 printf( "Ingrese la generatriz \n" );
 scanf( "%f", &GEN );
 printf( "Ingrese la altura \n" );
 scanf( "%f", &ALT );
 AL = M_PI * RAD * GEN;
 AT = AB + AL;
 VOL = 1/3 * AB * ALT;
 printf( "El area base es %5.2f \n", AB );
 printf( "El area lateral es %5.2f \n", AL );
 printf( "El area total es %5.2f \n", AT );
 printf( "El volumen es %5.2f \n", VOL );
}
Cuando lo ejecuto me da como resultado lo siguiente:
Citar
Ingrese el radio
2
Ingrese la generatriz
3
Ingrese la altura
6
El area base es 12.57
El area lateral es 18.85
El area total es 31.42
El volumen es  0.00
El problema es, que ponga el valor que ponga, volumen siempre me da 0.00 y no se porqué.
Agradecería mucho su ayuda y colaboración.
Muchas gracias.
Las personas inteligentes quieren aprender, los demás enseñar...

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Ejercicio En C - Ayuda
« Respuesta #1 en: Martes 3 de Julio de 2007, 01:29 »
0
El problema es esta linea:

Código: Text
  1.  
  2. VOL = 1/3 * AB * ALT;
  3.  
  4.  

El resultado de la division entera 1/3 da cero, y al multipilcarlo por lo demas, siempre te dara cero, cambiala por:

Código: Text
  1.  
  2. VOL = 1.0/3.0 * AB * ALT;
  3.  
  4.  

De esa forma, el compilador hara una division flotante (float) en lugar de entera.

Saludos 8)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Apokalyptica79

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Ejercicio En C - Ayuda
« Respuesta #2 en: Martes 3 de Julio de 2007, 01:32 »
0
Hola ProfesorX, muchas gracias por tu ayuda.
Modifiqué y funcionó.
Sigo  :comp:
MUCHAS GRACIAS.
Las personas inteligentes quieren aprender, los demás enseñar...