已知A是有30个元素的整型数组,编写一个对A[I1]到A[I2](I1≤I2)之间的元素排序的函数

已知A是有30个元素的整型数组,编写一个对A[I1]到A[I2](I1≤I2)之间的元素排序的函数(从大到小排序)。请调用上述函数先将A[5]至A[20]之间的元素排序,然后将A中的所有元素值输出。再调用上述函数对A[15]至A[30]之间的元素排序,最后再将A中30个元素值输出。
    要求:1) 输入输出均由主函数实现。
          2) 输出时每10个元素占1行。

参考GPT和自己的思路:

好的,根据你的要求,我可以给你一个代码实现:

#include <iostream>
using namespace std;

// 对A[i1]到A[i2]之间的元素从大到小排序
void sort(int A[], int i1, int i2) {
    for (int i = i1; i < i2; i++) {
        for (int j = i + 1; j <= i2; j++) {
            if (A[i] < A[j]) {
                swap(A[i], A[j]);
            }
        }
    }
}

int main() {
    int A[30] = { 5, 9, 2, 8, 6, 1, 4, 7, 3, 0, 10, 18, 12, 14, 11, 16, 15, 13, 19, 20, 17, 21, 22, 26, 25, 28, 27, 23, 24, 29 };
    // 对A[5]到A[20]之间的元素排序,然后输出A的所有元素
    sort(A, 5, 20);
    for (int i = 0; i < 30; i++) {
        cout << A[i] << " ";
        if ((i + 1) % 10 == 0) {
            cout << endl;
        }
    }
    cout << endl;

    // 对A[15]到A[30]之间的元素排序,然后输出A的所有元素
    sort(A, 15, 29);
    for (int i = 0; i < 30; i++) {
        cout << A[i] << " ";
        if ((i + 1) % 10 == 0) {
            cout << endl;
        }
    }
    cout << endl;

    return 0;
}

在上面的代码中,sort函数是用来对指定区间进行排序的,主函数中先调用sort函数对A[5]至A[20]之间的元素进行排序,并输出A的所有元素;然后再调用sort函数对A[15]至A[30]之间的元素进行排序,并再次输出A的所有元素。而为了满足题目要求,我在输出A的所有元素时,每10个元素占1行。