Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: motov33v en 25 Septiembre 2010, 11:08 AM

Título: ayuda con un error
Publicado por: motov33v en 25 Septiembre 2010, 11:08 AM
Hola, yo soy bastante nuevo en esto de la programación y estoy haciendo un programa para convertir de grados celsius a fahrenheit, de centimetros a pulgadas y viceversa, y a la hora de compilarlo me da 2 errores, pero por mas que reviso el código, no los encuentro, podrían indicarme cuales son o donde están
este es el código:

     
//Programa para pasar de centímetros a pulgadas y de grados celsius a fahrenheit
#include <stdio.h>
main()
{
float cel, fahr, pul, cent;  /* fahr -> fahrenheit, cel -> celsius,
pul -> pulgadas, cent -> centímetros*/
int opcion;
printf("1.- Convertir grados Celsius a Fahrenheit\n");
printf("2.- Convertir grados Fahrenheit a Celsius\n");
printf("3.- Convertkir pulgadas a centímetros\n");
printf("4.- Convertir centímetros a pulgadas\n");

printf("Seleccionar una opción\n");
scanf("%d",%opcion);

switch (opcion) {
       
               case 1:
                 
                  main()
                  {
                   float cel, fahr;
                   
                   printf("Escriba el valor de los grados Celsius\n");
                   scanf(%g,&cel);
               
                   farh=cel*9/5+32;  //Fórmula para obtener los grados fahrenheit
                   printf("%g\n", farh);
                   printf("\nFin\n");
                  }            
               
               case 2:
                   main()
                   {
                    float fahr, cel;
                   
                    printf("Escriba el valorde los grados Fahrenheit\n");
                    scanf(%g,&fahr);
                   
                    cel=fahr*5/9-32; //Formula para convertir a celsius
                    printf("%g\n", cel);
                    printf("\nFin\n");
                   }
                   
               
                case 3:
               
                    main()
                    {
                     float pul, cent;
                   
                     printf("Escriba el valor en pulgadas\n");
                     scanf(%g,&pul);
                     
                     cent=pul*2.54;  //Se multiplica el número de pulgadas por 2,54
                     printf("%g\n", cent);
                     prinf("\nFin\n");
                    }
               
                case 4:
                   main()
                   {
                    float pul, cent;
             
                    printf("Escriba el valor en centimetros\n");
                    scanf(%g,&cent);
                   
                    pul=cent*0.3937;  //Para convertir de a pulgadas, multiplicar por 0,3937
                    printf("%g\n",pul);
                    prinf("\nFin\n");
                   }
                   
              }    
                   
}                    



Gracias!            
Título: Re: ayuda con un error
Publicado por: satu en 25 Septiembre 2010, 11:40 AM
Hola, un error lo tienes aquí

Código (cpp) [Seleccionar]
scanf("%d",%opcion);

Sería de esta forma:

Código (cpp) [Seleccionar]
scanf("%d",&opcion);

y el otro error creo que es porque tienes definidas las variables cel, fahr, pul, cent en el main y luego las vuelves a definir en los case del switch. Además tienes otros errores como llamar a main en cada case y no terminar los case con la instrucción break.

Te recomiendo que te leas algún libro, dentro del subforo de c/c++ busca en las chinchetas que hay algunos muy buenos

Saludos
Título: Re: ayuda con un error
Publicado por: motov33v en 25 Septiembre 2010, 11:48 AM
muchas gracias satu. Es que nos están enseñando en la facultad y aun no se mucho respecto al tema de programación.
gracias por la rapidez en contestar!
Título: Re: ayuda con un error
Publicado por: satu en 25 Septiembre 2010, 11:56 AM
De nada, para eso estamos. Si sigues teniendo alguna duda o lo que sea ya sabes donde estamos.

Saludos
Título: Re: ayuda con un error
Publicado por: motov33v en 25 Septiembre 2010, 12:00 PM
pues mira, tengo una dudilla con respecto a lo que me has dicho de los case queno me ha quedado muy claro, por ejemplo, el primer case seria algo asi no??:

switch (opcion) {
       
                case 1:
                 
                    printf("Escriba el valor de los grados Celsius\n");
                    scanf(%g,&cel);
                 
                    farh=cel*9/5+32;  //Fórmula para obtener los grados fahrenheit
                    printf("%g\n", farh);
                    printf("\nFin\n");
                   
                   break;

                case 2:       
Título: Re: ayuda con un error
Publicado por: satu en 25 Septiembre 2010, 12:26 PM
Yes, así es
Título: Re: ayuda con un error
Publicado por: motov33v en 25 Septiembre 2010, 12:31 PM
vale, muchas gracias. Voy a ver si lo compilo y consigo ejecutarlo.

Lh: No hagas doble post, utiliza el botón modificar.

hola de nuevo, he corregido el programa y lo he intentado compilar y me ha dado los siguientes errores:

~/Documents> gcc -c 1.c
1.c: In function 'main':
1.c:21:27: error: expected expression before '%' token
1.c:32:28: error: expected expression before '%' token
1.c:43:29: error: expected expression before '%' token
1.c:54:28: error: expected expression before '%' token


y el codigo, tal como ha quedado ahora es asi:

//Programa para pasar de centímetros a pulgadas y de grados celsius a fahrenheit
#include <stdio.h>
main()
{
float cel, fahr, pul, cent;  /* fahr -> fahrenheit, cel -> celsius,
pul -> pulgadas, cent -> centímetros*/
int opcion;
printf("1.- Convertir grados Celsius a Fahrenheit\n");
printf("2.- Convertir grados Fahrenheit a Celsius\n");
printf("3.- Convertkir pulgadas a centímetros\n");
printf("4.- Convertir centímetros a pulgadas\n");

printf("Seleccionar una opción\n");
scanf("%d",&opcion);

switch (opcion) {
       
               case 1:
                   
                   printf("Escriba el valor de los grados Celsius\n");
                   scanf(%g,&cel);
               
                   fahr=cel*9/5+32;  //Fórmula para obtener los grados fahrenheit
                   printf("%g\n", fahr);
                   printf("\nFin\n");
                 
                 break;              
               
               case 2:
                   
                    printf("Escriba el valorde los grados Fahrenheit\n");
                    scanf(%g,&fahr);
                   
                    cel=fahr*5/9-32; //Formula para convertir a celsius
                    printf("%g\n", cel);
                    printf("\nFin\n");
                 
                  break;
               
                case 3:
               
                     printf("Escriba el valor en pulgadas\n");
                     scanf(%g,&pul);
                     
                     cent=pul*2.54;  //Se multiplica el número de pulgadas por 2,54
                     printf("%g\n", cent);
                     prinf("\nFin\n");
                   
                   break;
                       
                case 4:
                   
                    printf("Escriba el valor en centimetros\n");
                    scanf(%g,&cent);
                   
                    pul=cent*0.3937;  //Para convertir de a pulgadas, multiplicar por 0,3937
                    printf("%g\n",pul);
                    prinf("\nFin\n");
                   
                   break;
              }    
                   
}                                  



cual puede ser el fallo???
Título: Re: ayuda con un error
Publicado por: Horricreu en 25 Septiembre 2010, 13:13 PM
Hay unos cuantos fallos:


Aquí (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html) puedes ver la información detallada de tus errores y cómo solucionarlos de forma correcta con las funciones que te dí.

Saludos :P
Título: Re: ayuda con un error
Publicado por: motov33v en 25 Septiembre 2010, 14:05 PM
vale, muchas gracias, ya he conseguido compilarlo y hacerlo funcionar.
Luego me pasare por la pagina que me has citado para aprender un poquillo mas.
Gracias!
Título: Re: ayuda con un error
Publicado por: Horricreu en 25 Septiembre 2010, 14:18 PM
De nada ::)

Saludos :P