c++程序实现:编写一个函数int days(struct ymd date),其中ymd结构体包括year、month、day三个int类型的成员,分别代表年、月、日,函数能计算出该日期在本年度中是第几天(考虑闰年)。在主函数中输入年、月、日,并调用函数和输出结果。 输入样例: 2000 12 31 输出样例: 366 输入样例: 2018 1 1 输出样例: 1
时间: 2023-06-20 18:08:26 浏览: 36
以下是代码实现:
```c++
#include<iostream>
using namespace std;
struct ymd {
int year;
int month;
int day;
};
bool leapYear(int year) { // 判断是否为闰年
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int days(struct ymd date) { // 计算天数
int monthDays[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int sum = 0;
for (int i = 1; i < date.month; i++) {
sum += monthDays[i];
}
if (date.month > 2 && leapYear(date.year)) { // 如果是闰年并且月份大于2月
sum++;
}
sum += date.day;
return sum;
}
int main() {
struct ymd date;
cin >> date.year >> date.month >> date.day;
cout << days(date) << endl;
return 0;
}
```
程序运行结果:
```
2018 1 1
1
```
```
2000 12 31
366
```