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
Es porque el variable b es de tipo char y estas comparando números. Intentad así,
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main(){
int mes[11];
int i;
int b;
for(i=0;i<12;i++){
printf("Introduzca el nivel de lluvias del mes de [%d]\n",i);
scanf("%d", &mes[i]);
}
printf("\nDeseas el promedio de lluvias bimestral o trimestral?\n");
printf("\n1)Bimestral\n\n2)Trimestral\n\nopcion\n");
scanf("%i",&b);
switch (b){
case 1:
printf("enero-febrero %d\n",(mes[0]+mes[1])/2);
printf("marzo-abril %d\n",(mes[2]+mes[3])/2);
printf("mayo-junio %d\n",(mes[4]+mes[5])/2);
printf("julio-agosto %d\n",(mes[6]+mes[7])/2);
printf("septiembre-octubre %d\n",(mes[8]+mes[9])/2);
printf("noviembre-diciembre %d\n",(mes[10]+mes[11])/2);
break;
case 2:
printf("ene-feb-mar %d\n",(mes[0]+mes[1]+mes[2])/3);
printf("abr-may-jun %d\n",(mes[3]+mes[4]+mes[5])/3);
printf("jul-ago-sep %d\n",(mes[6]+mes[7]+mes[8])/3);
printf("oct-nov-dic %d\n",(mes[9]+mes[10]+mes[11])/3);
break;
default :
printf("Opción incorrecta\n");
}
getch();
return 0;
}
sigue funcionar
despues de ingresar el valor de b simplemente se cierra
gracias shell
ese era el problema tenias razon
mil gracias ;D
me acabas de salvar
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,
char b;
por,
int b;
2,
scanf("%c",&b);
por,
scanf("%i",&b);
¡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!