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

我感觉小编代码有问题

为什么当case 2: sum=31;不应该是28或29吗


提问者:慕正非 2022-01-16 21:15

个回答

  • cuvcr
    2022-01-17 14:54:31
    已采纳

    他是先按2月是28天来算,后面再判断该年是否为闰年,若为闰年就在总天数上再加1就行了(闰年的2月是29天)

    下载视频          

    搜索

    复制

  • weixin_慕侠2325489
    2022-09-01 13:48:25

    #include<stdio.h>

    int main()

    {

    int year=2008,month=8,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%400==0||year%4==0&&year%400!=0)

    {

    day+=29; 

    }

    else{

    day+=28;

    }

    case 1:day+=31 ;

      printf("2008年8月8日是该年的第%d天",day);

    }return 0; 

    }