问题:实现输入年、月、日,编程求这一日是该年中的第几天。
分析,解决:
1.首先定义年,月,日
2.输入年月日(注意scanf里有逗号),switch语句中的意思是看你输入几月份,然后再按照几日进行加减
3.要考虑闰年的情况,判断是否为闰年,需要满足俩种条件(或的关系,满足一个即可),其一:能被4整除但不能被100整除,其二:能被400整除。
4.最后输出就行,按照你们自己的输出习惯输出,这个是老师要求的,我自己感觉也不错
#include<stdio.h>
int main()
{
int yy, mm, dd, sum1, sum2;
scanf("%d,%d,%d", &yy, &mm, &dd);
switch (mm)
{
case 1:sum1 = 0; break;
case 2:sum1 = 31; break;
case 3:sum1 = 31+28; break;
case 4:sum1 = 31+28+31; break;
case 5:sum1 = 120; break;
case 6:sum1 = 151; break;
case 7:sum1 = 181; break;
case 8:sum1 = 212; break;
case 9:sum1 = 243; break;
case 10:sum1 = 273; break;
case 11:sum1 = 304; break;
case 12:sum1 = 334; break;
}
if ((yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0) && mm > 2)
{
sum2 = sum1 + 1 + 1 + dd;
}
else
{
sum2 = sum1 + dd;
}
printf("%d年%d月%d日是%d年的第%d天", yy, mm, dd, yy, sum2);
}