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

[0] Índice de Mensajes

Ir a la versión completa