我觉得我没错啊,可编译系统一直说 请检查输出是否包含:2008年8月8日是该年的第221天
#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);
}