#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用switch语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int sum,i;
sum=0;
for (i=0;i<=8;i++)
{
switch(i)
{
case 1:i+=31;
case 2:if((year%4==0&&year%100!=0)||year%400==0)
{
i+=29;
}
else
{
i+=28;
}
case 3:i+=31;
case 4:i+=30;
case 5:i+=31;
case 6:i+=30;
case 7:i+=31;
case 8:i+=31;
break;
}
sum=sum+i;
sum+=8;
printf ("%d年%d月%d日是该年的第%d天",year,month,day,sum);
}
return 0;
}
孩纸 你太调皮了 要加break 还有 你的 i+=····各个变量有实际意义的不要乱用 要养成好习惯
这是正确的代码 看看思路吧
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int sum, i;
sum=0;//sum代表总天数
for (i=0;i<month;i++)//每个月的天数加起来 i代表第i个月
{
switch(i)
{
case 1:sum+=31;break;
case 2:if((year%4==0&&year%100!=0)||year%400==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;
default: ;
}
}
sum+=day;
printf ("%d年%d月%d日是该年的第%d天",year,month,day,sum);
return 0;
}
恩恩 那个本人有喜欢完整 就把月份都写出来了
那个12月份可以不写 不影响的
对break可以跳出循环 也可以跳出switch语句
for里面包含或者说嵌套了一个switch语句,里面的break可以跳出
本题用i代表月份 i<month=8 即i可以等于1,2,3····7,这几个月的天数加起来 再单独加第8月的天数