Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: howaboutno en 21 Octubre 2012, 13:33 pm



Título: ayuda en C
Publicado por: howaboutno en 21 Octubre 2012, 13:33 pm
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;
}




Título: Re: ayuda en C
Publicado por: leosansan en 21 Octubre 2012, 14:01 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":
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define PI  3.141592
  4. int main()
  5. {
  6.   int opcion;
  7.   float r,longitud,superficie,volumen;
  8.   printf("1.Longitud del ciculo \n");
  9.   printf("2.Superficie del circulo \n");
  10.   printf("3.Volumen esfera \n");
  11.    do
  12.   {
  13.   printf("Introduce una opcion \n");
  14.  
  15.   scanf("%d",&opcion);
  16.   }while(opcion<1||opcion>3);
  17.  
  18.   if(opcion==1)
  19.   {
  20.      printf("Introduce el radio del circulo \n");
  21.      scanf("%g",&r);
  22.      longitud=2*PI*r;
  23.      printf("Longitud= %g",longitud);
  24.         }
  25.   else
  26.      if(opcion==2)
  27.         {
  28.         printf("Introduce el radio del circulo \n");
  29.         scanf("%g",&r);
  30.         superficie=PI*r*r;
  31.         printf("Superficie = %g",superficie);
  32.        }
  33.      else
  34.      {
  35.      printf("\n Introduce el radio de la esfera \n");
  36.      scanf("%g",&r);
  37.      volumen=4/3*PI*r*r*r;
  38.      printf("Volumen =  %g",volumen);
  39.    }
  40.   return 0;
  41. }


Título: Re: ayuda en C
Publicado por: DickGumshoe en 21 Octubre 2012, 14:03 pm
A mí también me funciona bien.

EDITO: Nada, también lo explicó leosansan lo que iba a decir.

Un saludo.


Título: Re: ayuda en C
Publicado por: 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


Título: Re: ayuda en C
Publicado por: DickGumshoe en 21 Octubre 2012, 14:35 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.