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

这样写有什么bug吗?

https://img1.sycdn.imooc.com//5c90dcb30001dd4b04930430.jpg

如果随意计算,有什么问题吗?

正在回答

2 回答


#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

    switch (month)

    {

        case 8:

        case 7:

            day += 31;

        case 6:

            day += 30;

        case 5:

            day += 31;

        case 4:

            day += 30;

        case 3:

            day += 31;

        case 2:

            if (year%4==0 && year%100!=0 || year%400==0)

                day += 29;

            else

                day += 28;

        case 1:

            day += 31;

    }

    printf("2008年8月8日是该年的第%d天", day);


return 0;

}


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

醉卧屋檐听风雨 提问者

我的意思是不把12个月都写全(即代码冗余)还能算出结果,很多童鞋都把12个月写上了,我个人觉得没必要,因为一年中间只有2月与8月比较特殊,仅筛选这两个月即可。我这边也试了代码,计算平年闰年天数的结果没问题。灰常感谢这位童鞋的评论哈。
2019-03-29 回复 有任何疑惑可以回复我~

没有错误,就是书写的不太规范,然后case 8多余了,i等于8的时候i小于month就不成立,所以case 8永远用不到

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

醉卧屋檐听风雨 提问者

代码格式是不怎么规范,为了截图就把格式给缩小了一下。题目是2008年8月8日,如果随便计算呢?比如某一年的任何月(8月以上)任何天。其他童鞋的代码都把12月也写上了耶!
2019-03-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926209    人
  • 解答问题       20797    个

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

进入课程

这样写有什么bug吗?

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