题目
输入某年某月某日,判断这一天是这一年的第几天?
程序分析
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
代码
//题目:输入某年某月某日,判断这一天是这一年的第几天?
#include <stdio.h>
int main ()
{
int year, month, day;
int sum = 0;
int leap;
printf("请输入年 月 日:");
scanf("%d %d %d", &year, &month, &day);
printf("你输入的是%d,%d,%d\n", year, month, day);
switch (month) {
case 1: printf("1月份\n"); sum=0; break;
case 2: printf("2月份\n"); sum=31; break;
case 3: printf("3月份\n"); sum=59; break;
case 4: printf("4月份\n"); sum=90; break;
case 5: printf("5月份\n"); sum=120; break;
case 6: printf("6月份\n"); sum=151; break;
case 7: printf("7月份\n"); sum=181; break;
case 8: printf("8月份\n"); sum=212; break;
case 9: printf("9月份\n"); sum=243; break;
case 10: printf("10月份\n"); sum=273; break;
case 11: printf("11月份\n"); sum=304; break;
case 12: printf("12月份\n"); sum=334; break;
}
if (year%400==0 || year%4==0 && year%100!=0) {
leap = 1;
} else {
leap = 0;
}
if (leap==1 && month>2) {
sum ++;
}
sum = sum + day;
printf("第%d天\n", sum);
return 0;
}
Sample input
2000 2 20
Sample output
请输入年 月 日:2000 2 20
你输入的是2000,2,20
2月份
第51天
--------------------------------
Process exited after 6.028 seconds with return value 0
请按任意键继续. . .