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,¢);
pul=cent*0.3937; //Para convertir de a pulgadas, multiplicar por 0,3937
printf("%g\n",pul);
prinf("\nFin\n");
}
}
}
Gracias!
Hola, un error lo tienes aquí
scanf("%d",%opcion);
Sería de esta forma:
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
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!
De nada, para eso estamos. Si sigues teniendo alguna duda o lo que sea ya sabes donde estamos.
Saludos
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:
Yes, así es
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,¢);
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???
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() (http://www.cplusplus.com/reference/clibrary/cstdio/scanf/). Igualmente no te recomiendo utilizar esta función, mejor emplea fgets() (http://www.cplusplus.com/reference/clibrary/cstdio/fgets/).
- Utilizas la función prinf() que no existe. En todo caso será printf().
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
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!
De nada ::)
Saludos :P