elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con switch(urgente)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con switch(urgente)  (Leído 2,963 veces)
eltyh

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda con switch(urgente)
« en: 18 Mayo 2011, 07:25 am »

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

Desconectado Desconectado

Mensajes: 72



Ver Perfil WWW
Re: Ayuda con switch(urgente)
« Respuesta #1 en: 18 Mayo 2011, 08:28 am »

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 Desconectado

Mensajes: 12


Ver Perfil
Re: Ayuda con switch(urgente)
« Respuesta #2 en: 19 Mayo 2011, 05:23 am »

Te lo corregí sólo para que veas la diferencia entre un código ordenado y uno como el tuyo ...

Código
  1. # include <stdio.h>
  2.  
  3. int main ()
  4. {
  5.   int x, cont=0;
  6.   char  opcion;    
  7.  
  8.   printf("Introduzca el numero deseado: ");
  9.   scanf("%d", &x);
  10.   while( getchar()!='\n');
  11.  
  12.   do{
  13.      printf("\n\nIntroduzca la operacion deseada: \n\n");
  14.      printf(" a. Pares \n");
  15.      printf(" b. Impares \n");
  16.      printf(" c. Todos \n\n");
  17.      printf("Elige opcion: ");
  18.      scanf("%c", &opcion);
  19.      while( getchar()!='\n');
  20.  
  21.      switch( opcion){
  22.  
  23.         case 'a':
  24.  
  25.            if( x%2 != 0){
  26.               x = x + 1;
  27.            }
  28.            printf ("\n%d",x);
  29.            for ( cont = 1; cont < 10; cont ++){
  30.  
  31.               x = x + 2;
  32.               printf(" %d",x);
  33.            }
  34.            break;
  35.  
  36.         case 'b':
  37.  
  38.            if( x%2 == 0){
  39.               x = x + 1;
  40.            }
  41.            printf ("\n%d",x);
  42.            for ( cont = 1; cont < 10; cont ++){
  43.  
  44.               x = x + 2;
  45.               printf (" %d",x);
  46.            }
  47.            break;
  48.  
  49.         case 'c':
  50.  
  51.            printf ("\n");
  52.            for ( cont = 0; cont < 10; cont ++){
  53.  
  54.               x = x + 1;
  55.               printf ("%d ",x);
  56.            }
  57.            break;
  58.  
  59.         default:
  60.  
  61.            printf("\nError - opcion no valida. Seleccione a. b. o c.");
  62.      }
  63.   }while( opcion == 'a' || opcion == 'b' || opcion == 'c');
  64.  
  65.   printf("\n\nPresione ENTER para salir . . .");
  66.   getchar();
  67.   return 0;
  68. }

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 Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda con switch(urgente)
« Respuesta #3 en: 5 Junio 2011, 00:17 am »

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 :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda en un menu en switch « 1 2 3 »
Programación C/C++
poisonkhriz 27 23,881 Último mensaje 20 Marzo 2011, 19:40 pm
por Akai
una pequeña ayuda con el comando switch
Programación C/C++
alkimista1988 3 3,044 Último mensaje 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,667 Último mensaje 10 Julio 2012, 20:24 pm
por suso teruel
ayuda intercambiando switch por if-else
Programación C/C++
++c 3 1,747 Último mensaje 15 Mayo 2014, 22:03 pm
por ++c
Ayuda con el switch
Programación C/C++
MGMR 2 1,751 Último mensaje 31 Marzo 2015, 03:23 am
por MGMR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines