题目
今年的第几天?
输入年、月、日,计算该天是本年的第几天。
输入格式
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出格式
输出一个整数,代表Input中的年、月、日对应本年的第几天。
输入输出样例
输入:
1990 9 20
2000 5 1
输出:
263
122
代码
C语言
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int year, month, date, sum = 0;
scanf("%d %d %d", &year, &month, &date);//输入年月日
//通过月份相加计算结果
for (int i = 0; i < month; i++) {
//本月有31天的月份
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
sum += 31;
}
//本月有30天的月份
if (i == 4 || i == 6 || i == 9 || i == 11) {
sum += 30;
}
//2月份需要判断是否为闰年
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
}
else {
sum += 28;
}
}
}
sum += date;//结果加上本月的日期就是本月的天数
printf("%d", sum);
return 0;
}
总结
本题用到的闰年的判断方法在之前有学过,有兴趣可以去在去查看每天一道C/C++题|3.写打印闰年/判断闰年
本题先用一个for循环,以此计算已经历过的月份并且相加,最后在末尾加上今天几号,就得到了这已经历过的天数了。