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

我的这个代码哪里有错误,明明是对的

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

 return 0;
}


提问者:小哥哥i 2019-11-07 19:59

个回答

  • 无敌小珺珺
    2019-11-15 18:36:03

    普通闰年:公历年份是4的倍数的,且不是100的倍数,为闰年。(如2004年就是闰年);

    世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是世纪闰年,2000年是世纪闰年);

  • qq_慕村420859
    2019-11-07 20:53:43

    你可以将 if(year%4==0&&year%100!=0) 改为 if(year%4==0)试试