以下是实现上述要求的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个日期的年份、月份和日份,程序将按照日期先后对数组进行排序,并输出排序结果

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

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

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