SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: cltomas en Domingo 13 de Marzo de 2011, 01:28

Título: Switch no ejecuta Default
Publicado por: cltomas en Domingo 13 de Marzo de 2011, 01:28
Tengo este codigo, y el deafault no se ejecuta y no comprendo porque no lo hace <_<

Código: C
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {  
  5.      int MAT, CARR, SEM;
  6.      float pro;
  7.    
  8.      printf("nintroduce Matricula=>");
  9.      scanf("%d", &MAT);
  10.       getchar();
  11.      
  12.      printf("nintroduce Carrera 1.Ind 2.-Tel 3.-Inf 4.-Mat=>");
  13.      scanf("%d", &CARR);
  14.      getchar();
  15.    
  16.      printf("nintroduce sem=>");
  17.      scanf("%d", &SEM);
  18.      getchar();
  19.    
  20.      printf("nintroduce pro=>");
  21.      scanf("%f", &pro);
  22.      getchar();
  23.  
  24.   switch(CARR)
  25.  {
  26.      
  27.      case 1: if((SEM >=6)&&(pro >=8.5))  
  28.                 printf("n Mat %d, Carre %d, Pro %fn", MAT, CARR, pro);
  29.                 break;
  30.    
  31.      case 2: if((SEM >=5)&&(pro >=9.0))
  32.                 printf("n Mat %d, Carre %d, Pro %fn", MAT, CARR, pro);
  33.                 break;
  34.            
  35.      case 3: if((SEM >=6)&&(pro >=8.8))
  36.                 printf("n Mat %d, Carre %d, Pro %fn", MAT, CARR, pro);
  37.                 break;
  38.                
  39.      case 4: if((SEM>=7)&&(pro>=9.0))
  40.                 printf("n Mat %d, Carre %d, Pro %fn", MAT, CARR, pro);
  41.                 break;
  42.         default: printf("nError!!!!!n");
  43.             break;
  44.        
  45.   }            
  46. }
  47.      
  48.  
Título: Re: Switch no ejecuta Default
Publicado por: herzdark en Domingo 13 de Marzo de 2011, 04:19
en tu codigo no hay problema el default del switch se ejecuta perfectamente pero no lo ves xq no paras la pantalla, al final del programa pone un system ("PAUSE") q se encuentra en la libreria STDLIB.H o el clrscr() de la libreria CONIO.H y ahora fijate si te anda bien
Título: Re: Switch no ejecuta Default
Publicado por: cltomas en Domingo 13 de Marzo de 2011, 10:03
Gracias por tu respuesta, pero estoy en Debian Gnu/linux y el default se ejecuta correctamente, el problema era que me faltaba colocar un printf fuera del switch    :brickwall:
Título: Re: Switch no ejecuta Default
Publicado por: m0skit0 en Lunes 14 de Marzo de 2011, 14:27
No olvides poner un return para la función main, que seguramente el compilador te está lanzando un warning.
Título: Re: Switch no ejecuta Default
Publicado por: Geo en Sábado 30 de Abril de 2011, 22:21
Cita de: "m0skit0"
No olvides poner un return para la función main
Correcto.

Cita de: "m0skit0"
que seguramente el compilador te está lanzando un warning.
No lanza nada si no está activo el nivel necesario de advertencia del compilador, quitamos ese "seguramente".