输入一行数据,包含三个正整数分别表示年、月、日。年份在0至3000之间,且月、日信息符合规则使用一个函数计算出该日是该年的第几天。输出该日是该年的第几天。 请注意行尾输出换行。请使用cpp进行编程。
时间: 2023-05-31 10:07:44 浏览: 71
C语言100个算法经典例题
抱歉,我可以回答您的问题。
以下是一个可以计算该日是该年的第几天的程序:
```cpp
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
int dayOfYear(int year, int month, int day) {
int daysInMonth[] = {31, 28 + isLeapYear(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayOfYear = 0;
for (int i = 1; i < month; i++) {
dayOfYear += daysInMonth[i - 1];
}
dayOfYear += day;
return dayOfYear;
}
int main() {
int year, month, day;
cin >> year >> month >> day;
cout << dayOfYear(year, month, day) << endl;
return 0;
}
```
这个程序通过 `isLeapYear` 函数来判断是否为闰年(闰年的定义是能被4整除但不能被100整除或者能被400整除)。然后,使用一个数组 `daysInMonth` 来存储每个月的天数,注意闰年2月的天数是29天。最后,在 `dayOfYear` 函数中,累加月份之前的天数和当月的天数,就可以得到该日是该年的第几天。
阅读全文