为了账号安全,请及时绑定邮箱和手机立即绑定

请问各位大佬我写的这个代码究竟哪里出错了?为什么一直运行失败呢?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day=8;

    int sum;

    switch(month)

    {

        case 1:sum=0;break;

        case 2:sum=31;break;

        case 3:sum=62;break;

        case 4:sum=93;break;

        case 5:sum=124;break;

        case 6:sum=155;break;

        case 7:sum=186;break;

        case 8:sum=217;break;

        case 9:sum=248;break;

        case 10:sum=279;break;

    }

    if(year%400=0)

    {

       sum-=2 

       printf("本年第%d天",sum);

    }

    else

    {

        printf("本年第%d天",sum);

    }    

    return0;    

}


正在回答

2 回答

 sum-=2    忘记加   ;

0 回复 有任何疑惑可以回复我~

感觉有几个问题:1.并不是每个月都有31天,所以那个case那里并不是31,62,93,124......这些数,而是31,59(或者闰年60),90(91)......这些数。第二,判断年份是否为闰年有问题。闰年是指这一年的年份是4的倍数且不是100的倍数,特别地,当年份是400的倍数时,这一年也是闰年。举个例子,1900年不是闰年,但2000年是闰年。第三,在sum-=2这一步。平年和闰年的区别是平年比闰年少一天。第四,sum应该是等于前几个月份的总天数加上本月的天数。也就是你那里应该还要加上day。把这几个问题改正一下应该就可以了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问各位大佬我写的这个代码究竟哪里出错了?为什么一直运行失败呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信