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

这道题做不来。

不能理解他的含义,特别是这一段    sum=sum+day;
    if(year%400==0)
        flag=1;
    else
        flag=0;
    if(flag==1&&month>2)
        sum++;
    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
    return 0;

提问者:从入门到BeKilled 2019-10-21 20:02

个回答

  • 单身蛙
    2019-10-21 20:42:25
    已采纳

    flag=1指的是闰年,flag=0指的是平年;

    同时满足闰年和二月后就相当于平年


  • 小泉爱学习
    2019-11-16 13:03:05

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

  • 单身蛙
    2019-10-21 20:44:27

    说错了,同时满足闰年和二月后,计算天数要加一