编写C++程序定义一个结构date包含年、月、日三个整型数据成员使用结构date声明包含5个数组元素的结构数组依次输入5个数组元素的值按日期先后对数组进行排序输出排序的结果。
以下是实现上述要求的C++程序:
#include <iostream>
using namespace std;
// 定义日期结构体
struct date {
int year;
int month;
int day;
};
// 比较两个日期的先后关系
bool compareDate(date d1, date d2) {
if (d1.year < d2.year) {
return true;
} else if (d1.year == d2.year) {
if (d1.month < d2.month) {
return true;
} else if (d1.month == d2.month) {
if (d1.day < d2.day) {
return true;
}
}
}
return false;
}
// 交换两个日期的值
void swapDate(date& d1, date& d2) {
date temp = d1;
d1 = d2;
d2 = temp;
}
// 对日期数组进行排序
void sortDates(date dates[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (compareDate(dates[j], dates[j + 1])) {
swapDate(dates[j], dates[j + 1]);
}
}
}
}
int main() {
// 声明包含5个数组元素的结构数组
date dates[5];
// 输入5个数组元素的值
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i + 1 << "个日期的年份:";
cin >> dates[i].year;
cout << "请输入第" << i + 1 << "个日期的月份:";
cin >> dates[i].month;
cout << "请输入第" << i + 1 << "个日期的日份:";
cin >> dates[i].day;
}
// 对数组进行排序
sortDates(dates, 5);
// 输出排序结果
cout << "排序结果:" << endl;
for (int i = 0; i < 5; i++) {
cout << "第" << i + 1 << "个日期:" << dates[i].year << "年" << dates[i].month << "月" << dates[i].day << "日" << endl;
}
return 0;
}
运行程序后,依次输入5个日期的年份、月份和日份,程序将按照日期先后对数组进行排序,并输出排序结果
原文地址: https://www.cveoy.top/t/topic/hAqo 著作权归作者所有。请勿转载和采集!