题目标题: 第几天(谌海军)
题目描述: 输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
输入描述: 输入为三个整数,分别表示年、月、日;
输出描述: 输出为一个整数,表示输入的年月日为当年的第几天;
样式输入: 2010 1 1
样式输出: 1
(我不知道超出范围怎么办(题目没说),就直接加了代码)
#include <stdio.h>
int main() {
int year, month, day, sum = 0;
int months[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
int leap = 0;
scanf("%d", &year);
scanf("%d", &month);
scanf("%d", &day);
if (0 <= month && month <= 12) {
sum = months[month - 1];
sum += day;
} else {
printf("您输入的日期超出范围!!");
return 1;
}
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) {
leap = 1;
}
if (leap == 1 && month > 2) {
sum += 1;
}
printf("%d", sum);
return 0;
}