Autor
|
Tema: Ayuda con switch(urgente) (Leído 3,001 veces)
|
eltyh
Desconectado
Mensajes: 2
|
Estoy empezando a programar en c. Ayer fue el primer día que empece con el comando switch, en uno de los ejercicios que tengo que hacer me da error en el break. EL programa tiene como objetivo pedir un numero, recogerlo y mostrar que hacer con ese numero.En este punto aparece un menú que muestra a.-Pares(los 10 números pares siguientes a él, si el es par se incluye);b.-Impares(los 10 numeros impares siguientes a él, si el es par se incluye);c.-Todos(los 10 numeros siguientes a él).El programa lo he planteado asi: # include <stdio.h> # include <conio.h> int main () { int x,cont=0; char opcion; printf("Introduzca el numero deseado: "); scanf ("%d",&x); do { printf("Introduzca la operacion deseada: \n a. Pares \n b. Impares \n c. Todos \nElige opcion: "); fflush(stdin); scanf("%c",&opcion); if (opcion!='a'&& opcion!='b'&& opcion!='c') { printf("Error opcion no valida. Seleccione a. b. o c."); } else { } } while (opcion=='a'||opcion=='b'||opcion=='c'); { switch((char)opcion) case 1: case 'a': cont=0; if (x%2!=0) { x=x + 1; printf ("%d",x); cont ++; } else while(cont<9) { x=x+2; printf("%d",x); cont ++; } break; case 'b': cont=0; if (x%2==0) { x=x + 1; printf ("%d",x); cont ++; } else { } for (; cont<9;cont ++) x=x+2; printf ("%d",x); break; case 'c': { cont=0; for (; cont<10;cont ++) x=x+1; printf ("%d",x); cont ++; break; } getch (); return 0; } } Gracias por adelantado.Buenos dias.
|
|
|
En línea
|
|
|
|
willyhunting
|
Buff, deberías repasarte cuando hay que utilizar las llaves, además de que hay un 'case 1:' que no sé muy bien qué pinta.
También te aconsejo que vayas comprobando que el programa funciona correctamente conforme lo vas haciendo, en vez de esperarte al final. De este modo podrás localizar mejor los fallos.
|
|
|
En línea
|
|
|
|
Lx
Desconectado
Mensajes: 12
|
Te lo corregí sólo para que veas la diferencia entre un código ordenado y uno como el tuyo ... # include <stdio.h> int main () { int x, cont=0; char opcion; printf("Introduzca el numero deseado: "); do{ printf("\n\nIntroduzca la operacion deseada: \n\n"); switch( opcion){ case 'a': if( x%2 != 0){ x = x + 1; } for ( cont = 1; cont < 10; cont ++){ x = x + 2; } break; case 'b': if( x%2 == 0){ x = x + 1; } for ( cont = 1; cont < 10; cont ++){ x = x + 2; } break; case 'c': for ( cont = 0; cont < 10; cont ++){ x = x + 1; } break; default: printf("\nError - opcion no valida. Seleccione a. b. o c."); } }while( opcion == 'a' || opcion == 'b' || opcion == 'c'); printf("\n\nPresione ENTER para salir . . ."); return 0; }
Y de paso ves tus errores ... Cuando pones un if(...) no es necesario poner else, si es que no lo vas a usar ... Cuando el if, else, switch, while, for, etc. llevan más de 1 sentencia se le debe poner llaves. Nos vemos.
|
|
« Última modificación: 19 Mayo 2011, 05:27 am por Lx »
|
En línea
|
|
|
|
eltyh
Desconectado
Mensajes: 2
|
Gracias a ambos, la verdad es que estaba un poco atascada y como no me salia me ofusque. Ya cuando me dijeron los errores me di cuenta, ya estos errores a mirarlos con lupa a partir de ahora
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda en un menu en switch
« 1 2 3 »
Programación C/C++
|
poisonkhriz
|
27
|
24,038
|
20 Marzo 2011, 19:40 pm
por Akai
|
|
|
una pequeña ayuda con el comando switch
Programación C/C++
|
alkimista1988
|
3
|
3,072
|
20 Junio 2011, 18:49 pm
por alkimista1988
|
|
|
Ayuda por favor con un switch con 3 cases
Programación C/C++
|
suso teruel
|
3
|
2,699
|
10 Julio 2012, 20:24 pm
por suso teruel
|
|
|
ayuda intercambiando switch por if-else
Programación C/C++
|
++c
|
3
|
1,778
|
15 Mayo 2014, 22:03 pm
por ++c
|
|
|
Ayuda con el switch
Programación C/C++
|
MGMR
|
2
|
1,789
|
31 Marzo 2015, 03:23 am
por MGMR
|
|