题目:如题
分析:
1.根据题意需要定义三个变量year,month,day
2.由于有多种情况(一年有12个月),所以用switch case语句比较简单
3.判断如果是闰年并且月份大于2月,sum加一天(闰年2月29天),判断方法(能被4整除且不能被100整除)或(能被400整除)满足一个条件就是闰年。
4.default是默认,如果上面没有满足条件的case就会执行默认
5.break;是跳出的意思,即跳出switch语句继续执行下边的程序,如果没有break,无论输入几月程序都会执行switch到12月份
6.exit(0);是结束的意思,该函数包含在windows.h头文件中
代码部分:
#include<stdio.h>
#include<windows.h>
int main()
{
int year,month,day;
int sum;
scanf("%d%d%d",&year,&month,&day);
switch(month)
{
case 1:
sum=0;
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("month error!\n");
exit(0);
}
sum=sum+day;
if(month>2&&year%4==0&&year%100!=0||month>2&&year%400==0)
{
sum++;
}
printf("%d年%d月%d日是第%d天\n",year,month,day,sum);
}
运行结果: