#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用swtich语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int sum;
switch(month)
{
case0:sum=0;break;
case1:sum=31;break;
case2:if((year%4==0&&year%100!=0)||(year%400==0))
{
day=29;
sum=day+31;
else
day=28;
sum=day+31;
};break;
case3:sum=31+31+day;break;
case4:sum=31+31+30+day;break;
case5:sum=31+31+31+30+day;break;
case6:sum=31+31+31+30+30+day;break;
case7:sum=31+31+31+31+30+30+day;break;
case8:sum=31+31+31+31+30+30+8+day;break;
defult:printf("今年有365天。");
}
printf("%d年%d月%d天是该年的第%d天",year,month,day,sum);
return 0;
}
1、if...else是分开用的,你直接把else放在if块中了,并且少了{}
2、default少了一个a
3、有好几处标点符号用成了中文标点
4、case和值之间要加个空格
你这是错的运行出来是200天,月份为八,会直接跳到case8向下执行,你前面写的二月份的判断会直接跳过。应该像老师一样把二月份的判断写在外面。
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用swtich语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int sum;
switch(month)
{
case 0:sum=0;break;
case 1:sum=31;break;
case 2:if((year%4==0&&year%100!=0)||(year%400==0))
{
day=29;
sum=day+31;
}else{
day=28;
sum=day+31;
}break;
case 3:sum=31+31+day;break;
case 4:sum=31+31+30+day;break;
case 5:sum=31+31+31+30+day;break;
case 6:sum=31+31+31+30+30+day;break;
case 7:sum=31+31+31+31+30+30+day;break;
case 8:sum=31+31+31+31+30+30+8+day;break;
default:printf("今年有365天。");
}
printf("%d年%d月%d天是该年的第%d天",year,month,day,sum);
return 0;
}