hola! tengo un problema, a ver si me podeis ayudar.
tengo que hacer esto:
1.Escribir una función a la que se le dé como parámetro un valor r que representa el radio de un figura una opción y un dato entero que será 1/2/3. La funciona debe devolver :
• En el caso opcion1 la longitud del circulo de radio r dada por la expresión 2*pi*r
• En el caso opción 2 la superficie del circulo dada por la expresión pi*r2
• En el caso opcion 3 el volumen de una esfera de radio r dada por la expresión 4/3*pi*r3
NOTA:pi debe defnirse como una constante;
he empezado a hacerla sin funcion por ahora, luego la pasaré a una función, cuando lo tenga mas claro.
tengo lo siguiente:
Al ejecutarlo, introduzco la opcion 1 y me calcula la longitud del circulo, pero al introducir la opción 2 o 3 no aparece nada mas. Donde podria estar el fallo? LLevo tiempo mirandolo y no lo veo....He de decir que soy principiante en C, asi que disculpad si haya hecho alguna tonteria xD
#include <stdio.h>
#include <stdlib.h>
#define PI 3.141592
int main()
{
int opcion,longitud=0,superficie=0,volumen=0;
int r;
printf("1.Longitud del círculo \n");
fflush(stdout);
printf("2.Superficie del círculo \n");
fflush(stdout);
printf("3.Volumen esfera \n");
fflush(stdout);
do
{
printf("Introduce una opción \n");
fflush(stdout);
scanf("%d",&opcion);
}while(opcion<1||opcion>3);
if(opcion==1)
{
printf("Introduce la longitud del circulo \n");
fflush(stdout);
scanf("%d",&r);
longitud=2*PI*r;
printf("resultado %d",longitud);
fflush(stdout);
}
else
if(opcion==2)
{
printf("Introduce la superficie del circulo \n");
fflush(stdout);
scanf("%d",&r);
superficie=PI*r;
printf("resultado %d",superficie);
fflush(stdout);
}
else
{
printf("\n Introduce el voumen del circulo \n");
fflush(stdout);
scanf("%d",&r);
volumen=4/3*PI*r;
printf("resultado %d",volumen);
fflush(stdout);
}
return 0;
}
Cita de: howaboutno en 21 Octubre 2012, 13:33 PM
Al ejecutarlo, introduzco la opcion 1 y me calcula la longitud del circulo, pero al introducir la opción 2 o 3 no aparece nada mas.
A mí me funciono sin problemas las tres opciones.
No obstante, tienes que cambiar algunas variables de int a float y algo los "mensajes" de "Introducir":
#include <stdio.h>
#include <stdlib.h>
#define PI 3.141592
int main()
{
int opcion;
float r,longitud,superficie,volumen;
printf("1.Longitud del ciculo \n");
printf("2.Superficie del circulo \n");
printf("3.Volumen esfera \n");
do
{
printf("Introduce una opcion \n");
scanf("%d",&opcion);
}while(opcion<1||opcion>3);
if(opcion==1)
{
printf("Introduce el radio del circulo \n");
scanf("%g",&r);
longitud=2*PI*r;
printf("Longitud= %g",longitud);
}
else
if(opcion==2)
{
printf("Introduce el radio del circulo \n");
scanf("%g",&r);
superficie=PI*r*r;
printf("Superficie = %g",superficie);
}
else
{
printf("\n Introduce el radio de la esfera \n");
scanf("%g",&r);
volumen=4/3*PI*r*r*r;
printf("Volumen = %g",volumen);
}
return 0;
}
A mí también me funciona bien.
EDITO: Nada, también lo explicó leosansan lo que iba a decir.
Un saludo.
Muchas gracias por vuestra ayuda!!
al saber que estaba todo bien he creado un proyecto nuevo, he copiado y pegado el codigo y ahora si que funciona...a saber porque
ahora solo me falta hacerlo mediante funcion :D
Cita de: howaboutno en 21 Octubre 2012, 14:30 PM
Muchas gracias por vuestra ayuda!!
al saber que estaba todo bien he creado un proyecto nuevo, he copiado y pegado el codigo y ahora si que funciona...a saber porque
ahora solo me falta hacerlo mediante funcion :D
A mí me pasaba mucho en Dev C++, así que cambié de IDE.