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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
me ignora el switch
« en: 11 Octubre 2010, 06:11 am »

hola soy nuevo aqui y me urge ayuda

tengo un problema compilo el siguiente programa y al ejecutarlo simplemente se salta el switch, agradeceria mucho que me mostraran mi error

-----------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>


int main()
{
    int mes[11];
    int i;
    char b;
    for(i=0;i<12;i++)
    {
                      printf("Introduzca el nivel de lluvias del mes de [%d]",i);
                      scanf("%d",&mes);
    }
    printf("\nDeseas el promedio de lluvias bimestral o trimestral?\n");
    printf("\n1)Bimestral\n\n2)Trimestral\n\nopcion\n");
    scanf("%c",&b);
   
    switch (b)
    {
    case 1 :
                printf("\nenero-febrero %d",(mes[0]+mes[1])/2);
                printf("\nmarzo-abril %d",(mes[2]+mes[3])/2);
                printf("\nmayo-junio %d",(mes[4]+mes[5])/2);
                printf("\njulio-agosto %d",(mes[6]+mes[7])/2);
                printf("\nseptiembre-octubre %d",(mes[8]+mes[9])/2);
                printf("\nnoviembre-diciembre %d\n",(mes[10]+mes[11])/2);
                break;
    case 2 :
                printf("\nene-feb-mar %d",(mes[0]+mes[1]+mes[2])/3);
                printf("\nabr-may-jun %d",(mes[3]+mes[4]+mes[5])/3);
                printf("\njul-ago-sep %d",(mes[6]+mes[7]+mes[8])/3);
                printf("\noct-nov-dic %d",(mes[9]+mes[10]+mes[11])/3);
                break;
               
    default :("\nopcion incorrecta");
    }
    getch();           
    return 0;
}

--------------------------------------------------------

muchas gracias de antemano, y es un gusto estar con ustedes


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: me ignora el switch
« Respuesta #1 en: 11 Octubre 2010, 06:28 am »

Es porque el variable b es de tipo char y estas comparando números. Intentad así,
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <math.h>
  5.  
  6. int main(){
  7.   int mes[11];
  8.   int i;
  9.   int b;
  10.   for(i=0;i<12;i++){
  11.      printf("Introduzca el nivel de lluvias del mes de [%d]\n",i);
  12.      scanf("%d", &mes[i]);
  13.   }
  14.  
  15.   printf("\nDeseas el promedio de lluvias bimestral o trimestral?\n");
  16.   printf("\n1)Bimestral\n\n2)Trimestral\n\nopcion\n");
  17.   scanf("%i",&b);
  18.  
  19.   switch (b){
  20.      case 1:
  21.         printf("enero-febrero %d\n",(mes[0]+mes[1])/2);
  22.         printf("marzo-abril %d\n",(mes[2]+mes[3])/2);
  23.         printf("mayo-junio %d\n",(mes[4]+mes[5])/2);
  24.         printf("julio-agosto %d\n",(mes[6]+mes[7])/2);
  25.         printf("septiembre-octubre %d\n",(mes[8]+mes[9])/2);
  26.         printf("noviembre-diciembre %d\n",(mes[10]+mes[11])/2);
  27.         break;
  28.      case 2:
  29.         printf("ene-feb-mar %d\n",(mes[0]+mes[1]+mes[2])/3);
  30.         printf("abr-may-jun %d\n",(mes[3]+mes[4]+mes[5])/3);
  31.         printf("jul-ago-sep %d\n",(mes[6]+mes[7]+mes[8])/3);
  32.         printf("oct-nov-dic %d\n",(mes[9]+mes[10]+mes[11])/3);
  33.         break;
  34.      default :
  35.         printf("Opción incorrecta\n");
  36.   }
  37.   getch();            
  38.   return 0;
  39. }


« Última modificación: 11 Octubre 2010, 06:34 am por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
aneozz

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: me ignora el switch
« Respuesta #2 en: 11 Octubre 2010, 06:35 am »

sigue funcionar

despues de ingresar el valor de b simplemente se cierra
En línea

aneozz

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: me ignora el switch
« Respuesta #3 en: 11 Octubre 2010, 06:43 am »

gracias shell

ese era el problema tenias razon

mil gracias ;D
me acabas de salvar
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: me ignora el switch
« Respuesta #4 en: 11 Octubre 2010, 06:43 am »

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Pues si ves el código solo le modifique 2 cosas,
1,
Código
  1. char b;
por,
Código
  1. int b;

2,
Código
  1. scanf("%c",&b);
por,
Código
  1. scanf("%i",&b);
En línea

Te vendería mi talento por poder dormir tranquilo.
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: me ignora el switch
« Respuesta #5 en: 11 Octubre 2010, 23:51 pm »

¡Buenas!

No tenias que haber modificado ningun tipo de varoable. Tenias que haberte dado cuenta de que el numero 1 es distinto del caracter 1. Ahora en el switch, lo unico que tienes que cambiar es numeros por caracteres.

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿aircrack-ng 1.1 ignora a crunch?
Wireless en Linux
chillinfart 0 2,538 Último mensaje 11 Junio 2012, 23:35 pm
por chillinfart
php warning ignora una funcion
PHP
gAb1 4 2,047 Último mensaje 3 Agosto 2013, 03:05 am
por gAb1
[Duda] Fstream ignora el 0.
Programación C/C++
Silenciosita 1 1,394 Último mensaje 25 Diciembre 2013, 14:14 pm
por leosansan
Switch ignora caso existente y salta a default, ignorando casos predefinidos.
Programación C/C++
harry_the_blogger 3 2,403 Último mensaje 27 Septiembre 2014, 16:16 pm
por xv0
MOVIDO: Switch ignora caso existente y salta a default, ignorando casos predefinidos.
Programación General
Eleкtro 0 1,619 Último mensaje 27 Septiembre 2014, 16:30 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines