编写程序定义一个结构date包含年、月、日三个整型数据成员使用结构date声明包含5个数组元素的结构数组依次输入5个数组元素的值按日期先后对数组进行排序输出排序的结果。
#include <iostream>
using namespace std;
// 定义日期结构
struct date {
int year;
int month;
int day;
};
// 比较日期的大小
bool compare(date d1, date d2) {
if (d1.year != d2.year) {
return d1.year < d2.year;
} else if (d1.month != d2.month) {
return d1.month < d2.month;
} else {
return d1.day < d2.day;
}
}
// 交换两个日期的值
void swap(date &d1, date &d2) {
date temp = d1;
d1 = d2;
d2 = temp;
}
// 对日期数组进行排序
void sortDates(date dates[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (compare(dates[j], dates[j+1])) {
swap(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 << dates[i].year << "-" << dates[i].month << "-" << dates[i].day << endl;
}
return 0;
}
注意:本程序假设输入的日期是合法的,未进行输入验证
原文地址: https://www.cveoy.top/t/topic/hAqf 著作权归作者所有。请勿转载和采集!