#include <iostream> using namespace std; //定义日期结构date struct date { int y, m, d; }; int main() { int i, k; //声明长度为5的日期数组 date dt[5]; //输入5个日期值 for (i = 0;i < 5;i++) cin >> dt[i].y >> dt[i].m >> dt[i].d; //对数组排序 //输出排序结果 for (i = 0;i < 5;i++) { cout << dt[i].y << "-" << dt[i].m << "-"<<dt[i].d << endl; } return 0; } 在此基础上编写程序,定义包含年、月、日三个整型数 据成员的结构date,声明长度为5的结构date 的数组,输入5个日期值(yyyy mm dd), 按日期先后对数组进行排序,输出排序的结 果。
时间: 2024-04-14 13:29:40 浏览: 21
下面是按照要求编写的程序,对日期数组进行排序并输出排序结果:
```cpp
#include <iostream>
using namespace std;
// 定义日期结构date
struct date {
int y, m, d;
};
// 日期比较函数,用于排序
bool compareDates(date d1, date d2) {
if (d1.y < d2.y)
return true;
else if (d1.y > d2.y)
return false;
else if (d1.m < d2.m)
return true;
else if (d1.m > d2.m)
return false;
else if (d1.d < d2.d)
return true;
else
return false;
}
int main()
{
int i, k;
// 声明长度为5的日期数组
date dt[5];
// 输入5个日期值
for (i = 0; i < 5; i++)
cin >> dt[i].y >> dt[i].m >> dt[i].d;
// 对数组进行排序
for (i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (!compareDates(dt[j], dt[j + 1])) {
date temp = dt[j];
dt[j] = dt[j + 1];
dt[j + 1] = temp;
}
}
}
// 输出排序结果
for (i = 0; i < 5; i++) {
cout << dt[i].y << "-" << dt[i].m << "-" << dt[i].d << endl;
}
return 0;
}
```
在上述代码中,我们定义了一个日期比较函数`compareDates()`,用于比较两个日期的先后顺序。然后,我们使用冒泡排序对日期数组进行排序,根据日期先后的顺序进行交换。最后,我们按顺序输出排序结果。
请注意,日期比较函数假设了输入的日期是合法的,并且不考虑闰年的情况。如果需要处理闰年,请根据具体要求进行相应的修改。