#include <stdio.h>int main() { int year = 2008; int month = 8; int day = 8; int sum,num; switch(month) { case 1;sum=0;break; case 2;sun=0+28;break; case 3;sum=0+28+31;break; case 4;sum=0+28+31+30;break; case 5;sum=0+28+31+30+31;break; case 6;sum=0+28+31+30+31+30;break; case 7;sum=0+28+31+30+31+30+31;break; case 8;sum=0+28+31+30+31+30+31+31;break; case 9;sum=0+28+31+30+31+30+31+31+30;break; case 10;sum=0+28+31+30+31+30+31+31+30+31;break; case 11;sum=0+28+31+30+31+30+31+31+30+31+30;break; case 12;sum=0+28+31+30+31+30+31+31+30+31+30+31;break; default:printf("还有12个以上的月份?"); } sun=sun+day; if(year%4=0) { num=1; } else { num=0; } if(num==1) { sum+1; printf("2008年8月8日是该年中第%d\n",sum); } return 0;}
2 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
语法上和逻辑上都有错误。
先说逻辑上的:
switch语句中,每个case后的是该月前面所有月份的天数总和。
所以 case 1 时,sum是一月份前所有日子的和,一月份之前可视为没有天数,所以sum是0。这没问题。
可是 case 2 时,sum应该是前一月的天数,也就是一月份的天数,那为什么你写28?
所以 case 2 及之后case中的天数都错了。
还有,有的地方手滑把 sum打成 sun 了。
后面 if 语句判断是否为闰年的条件也写错了。 闰年的条件是“四年一闰,百年不闰,四百年再闰”,并不是简单的被4整除就算闰年。
- 2 回答
- 1 关注
- 1376 浏览
添加回答
举报
0/150
提交
取消