为啥是220天呢~

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

烈鸟

2019-05-16 16:06

#include <stdio.h>
int main() {
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int allDay = 0;
    int i;
    int monthDay;
    for (i=1; i<month; i++) {
        switch(i) {
            case 1:
                monthDay = 31;
                break;
            case 2:
                if (year%400 == 0 || (year%4 == 0 && year%100 != 0)) {
                    // 为闰年
                    monthDay = 28;
                } else {
                    monthDay = 29;
                }
                break;
            case 3:
                monthDay = 31;
                break;
            case 4:
                monthDay = 30;
                break;
            case 5:
                monthDay = 31;
                break;
            case 6:
                monthDay = 30;
                break;
            case 7:
                monthDay = 31;
                break;
            case 8:
                monthDay = 31;
                break;
            case 9:
                monthDay = 30;
                break;
            case 10:
                monthDay = 31;
                break;
            case 11:
                monthDay = 30;
                break;
            case 12:
                monthDay = 31;
                break;
        }
        allDay += monthDay;
    }
    allDay += day;
    printf("%d年%d月%d日是该年的第%d天", year, month, day, allDay);
    return 0;
}


写回答 关注

3回答

  • 雨儿12345
    2019-05-17 23:13:33

    我知道答案了


  • 雨儿12345
    2019-05-17 14:01:54

    我能问问为什么那么多monthDay的取值,不是后面的替代前面的,而是全部都有,最后还能加起来吗?


  • 雨儿12345
    2019-05-17 13:56:03

    因为闰年的二月是29天,而你用了28天

C语言入门

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

926019 学习 · 20793 问题

查看课程

相似问题