Programación General > C/C++
Alguien Me Puede Ayudar??
(1/1)
nshica:
Buenas!!!!
He hecho un ejercicio que tiene que calcular los dias transcurridos entre una fecha introducida por el usuario y el 1 de enero. Tengo que usar una funcion y switch. Lo he hecho de la siguiente forma pero no me hace el switch, alguien sabe decirme en que me he equivocado??? Mil gracias.
--- Código: Text --- #include <stdio.h>int calculo (int a,int B) { int resultado; resultado=a-1; switch (B) { case '01': resultado=resultado+0; break; case '02': resultado=resultado+28; break; case '03': resultado=resultado+28+31; break; case '04': resultado=resultado+28+31+30; break; case '05': resultado=resultado+28+31+30+31; break; case '06': resultado=resultado+28+31+30+31+30; break; case '07': resultado=resultado+28+31+30+31+30+31; break; case '08': resultado=resultado+28+31+30+31+30+31+31; break; case '09': resultado=resultado+28+31+30+31+30+31+31+30; break; case '10': resultado=resultado+28+31+30+31+30+31+31+30+31; break; case '11': resultado=resultado+28+31+30+31+30+31+31+30+31+30; break; case '12': resultado=resultado+28+31+30+31+30+31+31+30+31+30+31; break;} return resultado;} int main (){ int dia,mes; int calculado; printf ("Este programa calcula la diferencia en dias entre una fecha y el 1 de Enero\n"); printf ("Introduce el dia en formato dd\n"); scanf ("%d",&dia); printf ("Introduce el mes en formato mm\n"); scanf ("%d",&mes); calculado= calculo (dia,mes); printf ("El total de dias transcurridos es %d \n",calculado);}
nshica:
Donde estan las caras pone b y un parentesis, es q me lo ha puesto como un emoticon
plaf:
te faltaron los {} en los case, y los ' ' son para caracteres, asi q no deberian ir ahi
y como opcion te recomiendo poner los casos ordenados al reves y no poner breaks, asi puedes ir sumando de a 1 en vez de todos los meses cada vez
--- Código: Text --- switch ( b ){case 12:resultado+=30;case 11:resultado+=31;case 10:resultado+=30;case 9:resultado+=31;case 8:resultado+=31;case 7:resultado+=30;case 6:resultado+=31;case 5:resultado+=30;case 4:resultado+=31;case 3:resultado+=28;case 2:resultado+=31;} de esta forma el programa entra por el mes correspondiente y suma todos los demas
bueno le saque los breaks asi q ya no necesitaba los {}, pero debio haber sido asi:
case 23:{
resultado+=666;
break;
}
nshica:
Muchas gracias por tu ayuda, ahora me funciona perfectamente.
En clase no nos explicaron que los ' ' son solo para caracteres. Tambien te agradezco la informacion.
Navegación
Ir a la versión completa