问答详情
源自:4-17 switch与if语句的应用

各位大神,看看我的程序有什么不对

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    month=month-1;

    int day = 8;

    int k;

       switch(month) 

       case 1: k=31;

       break;

       case 2: k=28+31;

       break;

       case 3: k=31+28+31;

       break;

       case 4: k=30+31+28+31;

       break;

       case 5: k=31+30+31+28+31;

       break;

       case 6: k=30+31+30+31+28+31;

       break;

       case 7: k=31+30+31+30+31+28+31;

       break;

       case 8: k=31+31+30+31+30+31+28+31;

       break;

       case 9: k=30+31+31+30+31+30+31+28+31;

       break;

       case 10: k=31+30+31+31+30+31+30+31+28+31;

       break;

        

      if(year%400==0)

      k=k+day+1;

      else

      k=k+day;

    

    printf("%d",k);

    return 0;

}


提问者:慕码人7586859 2018-08-15 17:09

个回答

  • Coat大王
    2018-08-16 11:33:52

    闰年的算法也不对。


  • 怠惰鱼
    2018-08-16 10:27:17

    1. swich()后面需要跟大括号,括住case部分

    2. 你没有考虑如果是一月二月闰年也不需要加一天

  • qq_相_0
    2018-08-16 10:25:10

    month=month-1;如果是month=1月,那么就是0哦,defaut;

    另外如果大于2月才要加上1天,如果小于2月,不需要加1的。