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

我想问下,为什么这样可以运行?且成功。还有就是为什么month-2?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum=0,i=0;

    

    switch(month-2)

    {

        case 1:sum+=31;

        case 2:sum+=30;

        case 3:sum+=31;

        case 4:sum+=30;

        case 5:sum+=31;

        case 6:sum+=30;

        case 7:sum+=31;

        case 8:sum+=31;

        case 9:sum+=30;

        case 10:sum+=31;

        case 11:if(year%4==0&&year%100!=0||year%400==0)sum+=29;else sum+=28;

        case 12:sum+=31;

    }

    i=sum+day;

    printf("%d年%d月%d日是该年的第%d天",year,month,day,i);

return 0;

}


提问者:qq_Maleslay_0 2018-03-19 10:17

个回答

  • Keven_Caz
    2018-03-19 12:00:40

    这个可以说是乱来的,因为没有break,所以机器会从case6开始执行到case12然后退出switch,就等于你之后每个月多少天然后你把他们加起来这样。