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

倒数2行怎么错了?

#include <stdio.h>

int main()

{

int year = 2008;

int month =8;

int day = 8;

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;

case 13:sum = 365;break;

default:

printf("%s\n","一年当中有12个月");

break; 

}

int sum = 212;

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

{

sum += (day+1);

}

else

{

sum += day;

}

printf("%d年%d月%d日是该年的第%d天\n",year,month,day,sum);

return 0;

}


提问者:qq_慕函数9094777 2020-12-13 23:17

个回答

  • qq_月暖蓝田_0
    2020-12-21 17:10:01

    判断闰年的逻辑有些问题,满足闰年的条件有 2 个:

    假设当前为x年

    1.   x % 4 == 0 && x % 100 != 0

    2.  x % 400 == 0

    而上面的代码只满足了第一个逻辑,需要补充第二个逻辑判断