问答详情
源自:4-17 switch与if语句的应用

这里面是哪错了啊?

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int i,j;
    if((year%100 != 0 && year%4 == 0)||year%400 == 0)
    {
        i = 28;
    }
    else
    {
        i = 27;
    }
    switch(month)
    {
        case 1:j = day; break;
        case 2:j = 31 + day; break;
        case 3:j = 31 + i + day; break;
        case 4:j = 31 + i + 31 + day; break;
        case 5:j = 31 + i + 31 + 30 + day; break;
        case 6:j = 31 + i + 31 + 30 + 31 + day; break;
        case 7:j = 31 + i + 31 + 30 + 31 + 30 + day; break;
        case 8:j = 31 + i + 31 + 30 + 31 + 30 + 31 + day; break;
        case 9:j = 31 + i + 31 + 30 + 31 + 30 + 31 + 31 + day; break;
        case 10:j =31 + i + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day; break;
        case 11:j =31 + i + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day; break;
        case 12:j =31 + i + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day; break;
    }
    printf("%d年%d月%d日是该年中的第%d天"), year, month, day, j);
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
 return 0;
}

提问者:慕沐8099755 2018-08-29 22:50

个回答

  • 清顔
    2018-09-03 13:45:28

    #include <stdio.h>
    int main()

        int year = 2008;
        int month = 8;
        int day = 8;
        int Day,i;
        if(year%400==0||(year%4==0&&year%100!=0))
            {
                i=29;
            }
            else
            {
                i=28;
            }
        switch(month)
        {
            case 1: Day=day;break;
            case 2: Day=i+day;break;
            case 3: Day=i+31+day;break;
            case 4: Day=i+31+30+day;break;
            case 5: Day=i+31+30+31+day;break;
            case 6: Day=i+31+30+31+30+day;break;
            case 7: Day=i+31+30+31+30+31+day;break;
            case 8: Day=i+31+30+31+30+31+31+day;break;
            case 9: Day=i+31+30+31+30+31+31+30+day;break;
            case 10: Day=i+31+30+31+30+31+31+30+31+day;break;
            case 11: Day=i+31+30+31+30+31+31+30+31+30+day;break;
            case 12: Day=i+31+30+31+30+31+31+30+31+30+31+day;break;
        }
        printf("%d年%d月%d日是该年的第%d天\n",year,month,day,Day);
     return 0;

    }

    我的这个过程跟你基本上一样,运行成功了。

  • MUKENUM1827
    2018-08-29 23:41:44

    兄弟,闰年2月是29天不是28天。。。。。。