#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;
}

注意:本程序假设输入的日期是合法的,未进行输入验证

编写程序定义一个结构date包含年、月、日三个整型数据成员使用结构date声明包含5个数组元素的结构数组依次输入5个数组元素的值按日期先后对数组进行排序输出排序的结果。

原文地址: https://www.cveoy.top/t/topic/hAqf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录