#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用swtich语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int sum=0;
switch(month)
{
case 12:sum+=30;
case 11:sum+=31;
case 10:sum+=30;
case 9:sum+=31;
case 8:sum+=31;
case 7:sum+=30;
case 6:sum+=31;
case 5:sum+=30;
case 4:sum+=31;
case 3:sum+=29;
case 2:sum+=30;
case 1:sum+=day;break;
}
if((year%400==0)||(year%4==0&&year%100!=0))
//如果为真那么是闰年,闰年中大于2月份都要加一天
{
sum+=day+1;
}
else
{
sum+=day;
}
printf("2008年8月8日是该年的第%d天",sum);
return 0;
}
我第一次也是犯了跟你一样的错误,对于各种case其实是每个分支,上面分支的sum在遇到break后就不会再把它的值传递到下一个case中去了,所以必须自己算出每种case中num的值,具体可以参考小编的思路