为什麽switch后面条件month要-1?

来源:4-17 switch与if语句的应用

笑田

2015-12-05 22:29

#include <stdio.h>
int main()
{
    int year = 2008;
    int month = 8;
    int day = 8;
    switch(month-1)
    {
        case 12:day+=31;
        case 11:day+=30;
        case 10:day+=31;
        case 9:day+=30;
        case 8:day+=31;
        case 7:day+=31;
        case 6:day+=30;
        case 5:day+=31;
        case 4:day+=30;
        case 3:day+=31;
        case 2:if((year%4==0 && year%100!=0) || year%400==0)
                    day+=29;
               else
                    day+=28;
        case 1:day+=31;
    }
    printf("2008年8月8日是该年的第%d天",day);
 return 0;
}

写回答 关注

1回答

  • 徐二喜
    2015-12-05 22:56:45

    首先,不加break会顺序执行接下来的代码,再有就是,假设,今天是8月8号,8月其实只过了8天,前面七个月是真正过完了的......

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题