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

来源:4-17 switch与if语句的应用

慕瓜2277694

2020-02-06 17:10

#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回答

  • 慕运维6239371
    2020-02-19 13:08:22

     sum-=2    忘记加   ;

  • 慕UI7198921
    2020-02-07 13:42:30

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

924578 学习 · 20763 问题

查看课程

相似问题