求问这错在哪里,谢谢!

#include <stdio.h>

int main() 

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum,num;

    switch(month)

    {

        case 1;sum=0;break;

        case 2;sun=0+28;break;

        case 3;sum=0+28+31;break;

        case 4;sum=0+28+31+30;break;

        case 5;sum=0+28+31+30+31;break;

        case 6;sum=0+28+31+30+31+30;break;

        case 7;sum=0+28+31+30+31+30+31;break;

        case 8;sum=0+28+31+30+31+30+31+31;break;

        case 9;sum=0+28+31+30+31+30+31+31+30;break;

        case 10;sum=0+28+31+30+31+30+31+31+30+31;break;

        case 11;sum=0+28+31+30+31+30+31+31+30+31+30;break;

        case 12;sum=0+28+31+30+31+30+31+31+30+31+30+31;break;

        default:printf("还有12个以上的月份?");

    }

    sun=sun+day;

    if(year%4=0)

    {

        num=1;

    }

    else

    {

        num=0;

    }

    if(num==1)

    {    

        sum+1;

        printf("2008年8月8日是该年中第%d\n",sum);

    }

    return 0;

}


qq_丿殇丶Abgrund_03928552
浏览 1377回答 2
2回答

onemoo

语法上和逻辑上都有错误。先说逻辑上的:switch语句中,每个case后的是该月前面所有月份的天数总和。所以 case 1 时,sum是一月份前所有日子的和,一月份之前可视为没有天数,所以sum是0。这没问题。可是 case 2 时,sum应该是前一月的天数,也就是一月份的天数,那为什么你写28?所以 case 2 及之后case中的天数都错了。还有,有的地方手滑把 sum打成 sun 了。后面 if 语句判断是否为闰年的条件也写错了。 闰年的条件是“四年一闰,百年不闰,四百年再闰”,并不是简单的被4整除就算闰年。

慕后端9788028

笨,自己板着手指数一数
打开App,查看更多内容
随时随地看视频慕课网APP