编写定义一个结构体日期(年、月、日),计算并输出该日期是该年中的第几天,要求自定义函数,用结构体指针作为函数参数,并要考虑闰年和非闰年情况输入年月日,以空格间隔
时间: 2023-11-23 20:05:42 浏览: 428
好的,以下是代码实现:
```c++
#include <iostream>
using namespace std;
struct Date {
int year;
int month;
int day;
};
int getDays(Date *date) {
int days[] = {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 += days[i];
}
sum += date->day;
if((date->year%4==0 && date->year%100!=0) || date->year%400==0) { // 判断是否为闰年
if(date->month > 2) {
sum += 1;
}
}
return sum;
}
int main() {
Date date;
cin >> date.year >> date.month >> date.day;
int days = getDays(&date);
cout << "这一天是这一年的第 " << days << " 天" << endl;
return 0;
}
```
程序中,我们定义了一个日期结构体 `Date`,其中包含年、月、日三个成员变量。然后,我们编写了一个名为 `getDays` 的函数,接收一个指向 `Date` 结构体的指针,计算出该日期是该年中的第几天,并返回该值。在计算过程中,我们先声明了一个数组 `days`,用于存储每个月的天数,然后通过循环累加得出该日期在该年中是第几天。最后,我们还要进行闰年的判断,如果是闰年且在二月之后,则要加上一天。
在主函数中,我们首先读入年月日三个参数,然后调用 `getDays` 函数计算出该日期是该年中的第几天,并输出结果。
注意,这里的 `getDays` 函数需要接收一个指向 `Date` 结构体的指针,这样才能在函数中修改结构体中的成员变量,并返回计算结果。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)