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

请教各位,我这样的代码有问题吗?答案是正确的

#include <stdio.h>
int main() 
{ 
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int i,l;
    switch(month)
    {
        case 1:i=0;break;
        case 2:i=31;break;
        case 3:i=59;break;
        case 4:i=90;break;
        case 5:i=120;break;
        case 6:i=151;break;
        case 7:i=181;break;
        case 8:i=212;break;
        case 9:i=243;break;
        case 10:i=273;break;
        case 11:i=304;break;
        case 12:i=334;break;
        
    }
    i += day;
    if((year%4 ==0 && year%100 !=0) || year%400 ==0)
    i++;

    printf("%d年%d月%d日是该年的第%d天", year,month,day,i);
    
    return 0;
}



正在回答

2 回答

貌似我这样写上面的L也是多余的呢。

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

我是参考答案写的,但答案后面的IF语句我没看懂,所以自己就写成这样 答案还是一样,就是不知道这样的代码是否有问题?

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

Breaker_CHN

if语句判断闰年. if(((year%4 ==0 && year%100 !=0) || year%400 ==0) && (month > 2)) 这样写逻辑会更完整些. 另外, month和day要加一下范围判断才好啊, month的范围不用说了, day的范围要根据月份/是否闰年也加一下判断, 再做计算处理.
2015-05-09 回复 有任何疑惑可以回复我~
#2

爱的拼搏 提问者 回复 Breaker_CHN

非常感谢
2015-05-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请教各位,我这样的代码有问题吗?答案是正确的

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