到底哪里错了,请大神指教
我觉得我没错啊,可编译系统一直说 请检查输出是否包含:2008年8月8日是该年的第221天
2017-09-11
#include <stdio.h> int main() { /* 定义需要计算的日期 */ int year = 2008; int month = 8; int day = 8; int sum,i; sum = day; /* * 请使用switch语句,if...else语句完成本题 * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办” * 小编还是希望大家独立完成哦~ */ for( i= 1; i < month; i++){ switch(i){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: sum+= 31; break; case 4: case 6: case 9: case 11: sum+= 30; break; case 2: if(year%4 == 0){ sum+= 29; }else{ sum+= 28; } break; } } printf("%d年%d月%d日是该年的第%d天",year,month,day,sum); }
哈哈。这样更简洁。我不喜欢慕课那个逻辑。
不知道你的hello.c代码是不是你写的,我copy来执行并没有错。
这是我的代码:
#include <stdio.h> int main() { /* 定义需要计算的日期 */ int year = 2008; int month = 8; int day = 8; int sum,i; sum = day; /* * 请使用switch语句,if...else语句完成本题 * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办” * 小编还是希望大家独立完成哦~ */ for( i= 1; i < month; i++){ switch(i){ case 1: sum+= 31;break; case 2: if(year%4 == 0){ sum+= 29; }else{ sum+= 28; } break; case 3: sum+= 31; break; case 4: sum+= 30; break; case 5: sum+= 31;break; case 6: sum+= 30;break; case 7: sum+= 31;break; case 8:sum+= 31;break; case 9:sum+= 30;break; case 10:sum+= 31;break; case 11:sum+= 30;break; case 12:sum+= 31;break; } } printf("%d年%d月%d日是该年的第%d天",year,month,day,sum); }
举报