请使用switch语句和if…else语句,输入一个年份,判断是该年中的第几天。
分析:听着好难,咱来分析一下。
天数=月份数+本月的第几天
例如: 以10月1日为例,应该先把前9个月的天数加起来,然后再加上1天即本年的第几天。
特殊情况:判断是否为闰年!
如何判断每个月有几天?
不用死记硬背,
有口诀。
一三五七八十腊,三十一天永不差
什么意思?
1、3、5、7、8、10、12永远是31天
2月平年是28天,闰年是29天。
好啦。
代码伺候:
#include <stdio.h>
int main()
{
int year;
int month;
int day;
int sum;
printf("请输入年月日(中间用空格隔开),将自动生成是该年中的第几天:");
scanf("%d %d %d",&year,&month,&day);
switch(month){
case 1:
sum=0;//第一个月无需加前面的月份,因为1月是老大
break;
case 2:
sum=31;
break;
case 3:
sum=59;
break;
case 4:
sum=90;
break;
case 5:
sum=120;
break;
case 6:
sum=151;
break;
case 7:
sum=181;
break;
case 8:
sum=212;
break;
case 9:
sum=243;
break;
case 10:
sum=273;
break;
case 11:
sum=304;
break;
case 12:
sum=334;
break;
default:
printf("%s\n","您输入的月份不合理!");
break;
}
sum+=day;
if(((year%4==0&&year%400!=0)||(year%400==0))&&month>2)
{
sum++;
printf("%d年%d月%d日是该年的第%d天\n",year,month,day,sum);
}
else
{
printf("%d年%d月%d日是该年的第%d天\n",year,month,day,sum);
}
return 0;
}
祝看到此文章的有情人终成眷属!
今天的switch-if语句到此结束,明天依旧光芒万丈啊!
“如果一切到最后没有变好,就说明还没有到最后”
代码如此,人生亦是如此。
新的一年,各位加油!