题目
输入某年某月某天,判断这一天是这一年的第几天
思路
先将前面月份天数相加后再加上次月天数
特殊情况:闰年且输入月份大于3时考虑多加一天
#include <stdio.h>
main()
{
int year, month, day, sum;
printf("请输入年,月,日\n");
scanf("%d,%d,%d", &year, &month, &day);
switch (month) //计算前面月份总天数
{
case 1:
sum = 0;
break;
case 2:
sum = 31;
break;
case 3:
sum = 31 + 28;
break;
case 4:
sum = 31 * 2 + 28;
break;
case 5:
sum = 31 * 2 + 28 + 30;
break;
case 6:
sum = 31 * 3 + 28 + 30;
break;
case 7:
sum = 31 * 3 + 28 + 30 * 2;
break;
case 8:
sum = 31 * 4 + 28 + 30 * 2;
break;
case 9:
sum = 31 * 5 + 28 + 30 * 2;
break;
case 10:
sum = 31 * 5 + 28 + 30 * 3;
break;
case 11:
sum = 31 * 6 + 28 + 30 * 3;
break;
case 12:
sum = 31 * 6 + 28 + 30 * 4;
break;
default:
printf("error");
break;
}
sum += day; //加上本月天数
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{ //是闰年
if (month > 2)
{ //月份大于2
sum += 1; //多加一天
}
}
printf("是今年的第%d天", sum);
}