• Jueves 14 de Noviembre de 2024, 04:41

Autor Tema:  Alguien Me Puede Ayudar??  (Leído 1072 veces)

nshica

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Alguien Me Puede Ayudar??
« en: Sábado 31 de Enero de 2004, 00:13 »
0
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
  1.  
  2. #include <stdio.h>
  3. int calculo (int a,int B)
  4.  
  5. {
  6.   int resultado;
  7.   resultado=a-1;
  8.   switch (B)
  9.   {
  10.     case '01':
  11.     resultado=resultado+0;
  12.     break;
  13.     case '02':
  14.     resultado=resultado+28;
  15.     break;
  16.     case '03':
  17.     resultado=resultado+28+31;
  18.     break;
  19.     case '04':
  20.     resultado=resultado+28+31+30;
  21.     break;
  22.     case '05':
  23.     resultado=resultado+28+31+30+31;
  24.     break;
  25.     case '06':
  26.     resultado=resultado+28+31+30+31+30;
  27.     break;
  28.     case '07':
  29.     resultado=resultado+28+31+30+31+30+31;
  30.     break;
  31.     case '08':
  32.     resultado=resultado+28+31+30+31+30+31+31;
  33.     break;
  34.     case '09':
  35.     resultado=resultado+28+31+30+31+30+31+31+30;
  36.     break;
  37.     case '10':
  38.     resultado=resultado+28+31+30+31+30+31+31+30+31;
  39.     break;
  40.     case '11':
  41.     resultado=resultado+28+31+30+31+30+31+31+30+31+30;
  42.     break;
  43.     case '12':
  44.     resultado=resultado+28+31+30+31+30+31+31+30+31+30+31;
  45.     break;}
  46.   return resultado;
  47. }
  48.  
  49. int main ()
  50. {
  51.     int dia,mes;
  52.     int calculado;
  53.     printf ("Este programa calcula la diferencia en dias entre una fecha y el 1 de Enero\n");
  54.     printf ("Introduce el dia en formato dd\n");
  55.     scanf ("%d",&dia);
  56.     printf ("Introduce el mes en formato mm\n");
  57.     scanf ("%d",&mes);
  58.     calculado= calculo (dia,mes);
  59.     printf ("El total de dias transcurridos es %d \n",calculado);
  60. }
  61.  

nshica

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Alguien Me Puede Ayudar??
« Respuesta #1 en: Sábado 31 de Enero de 2004, 00:14 »
0
Donde estan las caras pone b  y un parentesis, es q me lo ha puesto como un emoticon

plaf

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: Alguien Me Puede Ayudar??
« Respuesta #2 en: Sábado 31 de Enero de 2004, 00:37 »
0
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
  1.  
  2. switch ( b )
  3. {
  4. case 12:
  5. resultado+=30;
  6. case 11:
  7. resultado+=31;
  8. case 10:
  9. resultado+=30;
  10. case 9:
  11. resultado+=31;
  12. case 8:
  13. resultado+=31;
  14. case 7:
  15. resultado+=30;
  16. case 6:
  17. resultado+=31;
  18. case 5:
  19. resultado+=30;
  20. case 4:
  21. resultado+=31;
  22. case 3:
  23. resultado+=28;
  24. case 2:
  25. resultado+=31;
  26. }
  27.  
  28.  
  29.  
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

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Alguien Me Puede Ayudar??
« Respuesta #3 en: Sábado 31 de Enero de 2004, 00:52 »
0
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.