C++中,从键盘输入三个整数,分别代表年月和日。输出这一天,是该年的第几天?程序怎么写?
时间: 2024-10-21 07:12:56 浏览: 32
输入年月日输出该年是这一年的第几天
在C++中,你可以通过`std::cin`从键盘获取用户输入,并利用日期计算公式来确定给定日期是一年的第几天。下面是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
// 计算闰年的辅助函数
bool is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 计算给定日期是一年的第几天
int day_of_year(int month, int day, int year) {
int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (is_leap_year(year)) {
days_in_month[1] = 29; // 调整二月份天数
}
int total_days = 0;
for (int i = 0; i < month - 1; i++) {
total_days += days_in_month[i];
}
total_days += day;
return total_days;
}
int main() {
int year, month, day;
cout << "请输入年份: ";
cin >> year;
cout << "请输入月份(1-12): ";
cin >> month;
cout << "请输入日期: ";
cin >> day;
// 检查输入是否合理(例如,不允许2月有30天)
if (month > 12 || (month == 2 && (day > 29 || (day > 28 && !is_leap_year(year))))) {
cerr << "错误的输入,无法计算。" << endl;
return 1;
}
int day_of_year_result = day_of_year(month, day, year);
cout << "这一天是 " << year << " 年的第 " << day_of_year_result << " 天。" << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个检查闰年的辅助函数,然后计算出给定月份之前的总天数,再加上输入的日期,得到一年中的天数。
阅读全文