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

下面的程序为什么输出是39天

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

    int sum=0;

    

    switch(month-1)

    {

        case 1: sum+=31;break;

        case 2:

        if((year%4==0||year%100!=0)&&year%400==0)

        {

            sum+=29;

        }

        else

        {

            sum+=28;

        }

        case 3:sum+=31;break;

        case 4:sum+=30;break;

        case 5:sum+=31;break;

        case 6:sum+=30;break;

        case 7:sum+=31;break;

        case 8:sum+=30;break;

        case 9:sum+=31;break;

        case 10:sum+=30;break;

        case 11:sum+=31;break;

        case 12:sum+=30;break;

    }

    sum+=day;

    printf("%d年%d月%d日这一天是该年中的第%d天",year,month,day,sum);

return 0;

}


提问者:洋气么么 2018-12-19 10:33

个回答

  • 久孤丶无心
    2018-12-19 16:39:55

    现在是选择执行,你之前的没有执行,sum没有累加起来。