请问为什么这样运行结果正确,但无法通过?

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

云吃水汽我吃云

2018-06-14 13:24

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    switch (month)

    {

        case 1 : sum = 0+day;break;

        case 2 : sum = 31+day;break;

        case 3 : sum = 31+28+day;break;

        case 4 : sum = 31+28+31+day;break;

        case 5 : sum = 31+28+31+30+day;break;

        case 6 : sum = 31+28+31+30+31+day;break;

        case 7 : sum = 31+28+31+30+31+30+day;break;

        case 8 : sum = 31+28+31+30+31+30+31+day;break;

        case 9 : sum = 31+28+31+30+31+30+31+31+day;break;

        case 10 : sum = 31+28+31+30+31+30+31+31+30+day;break;

        case 11 : sum = 31+28+31+30+31+30+31+31+30+31+day;break;

        case 12 : sum = 31+28+31+30+31+30+31+31+30+31+30+day;break;

    }

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

        {

            if (month>2)

                printf ("%d",sum+1);

            else

                printf ("%d",sum);

        }

    else 

        printf ("%d",sum);

return 0;

}

写回答 关注

2回答

  • 慕妹5811443
    2018-07-03 08:30:22

    少了sum=sum+day

  • 云吃水汽我吃云
    2018-06-14 13:29:42

    已经知道为啥了?输出结果格式不对,应当是某年某月某日是该年的第几天。。

C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题