ayuda con un error

Iniciado por motov33v, 25 Septiembre 2010, 11:08 AM

0 Miembros y 2 Visitantes están viendo este tema.

motov33v

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!            

satu

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
Breakbeat como forma de vida

motov33v

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!

satu

De nada, para eso estamos. Si sigues teniendo alguna duda o lo que sea ya sabes donde estamos.

Saludos
Breakbeat como forma de vida

motov33v

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:       

satu

Breakbeat como forma de vida

motov33v

#6
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???

Horricreu

Hay unos cuantos fallos:


  • Declaras main() en vez de int main(). En los compiladores antiguos no te dará error pero en los actuales, y buenos, sí. Recuerda que debe retornar un entero.
  • Tienes mal declarado el formato de escaneo de scanf(). Igualmente no te recomiendo utilizar esta función, mejor emplea fgets().
  • Utilizas la función prinf() que no existe. En todo caso será printf().

Aquí puedes ver la información detallada de tus errores y cómo solucionarlos de forma correcta con las funciones que te dí.

Saludos :P

motov33v

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!