把题目部分翻译一下:
输入一个整数n,表示接下来会输入n个有序整数(从大到小的顺序)。
然后输入一个数x,要求按原来排序的规则将它插入到这个有序序列中。
最后输出这个新的有序序列。
这里提供一个 C++ 的示例代码来解决这个问题:
#include <iostream>
using namespace std;
int main() {
const int MAX_N = 10;
int n, a[MAX_N], x;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cin >> x;
int pos = n; // pos 表示要插入的位置
for (int i = 0; i < n; i++) {
if (x >= a[i]) { // 注意题目中是“从大到小”的顺序,所以这里是“大于等于”
pos = i;
break;
}
}
// 把 x 插入到 a 中
for (int i = n; i > pos; i--) {
a[i] = a[i - 1];
}
a[pos] = x;
n++; // 序列长度增加 1
// 输出新的序列
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
这个代码中,我们用一个数组 a 来存储这个有序序列,用一个变量 x 来存储要插入的数,用变量 pos 来表示要插入的位置。
首先读入这个有序序列和要插入的数,然后遍历这个序列,找到第一个比 x 小的位置,即为要插入的位置。接着把 x 插入到 a 中,并把序列长度加 1,最后输出新的序列。
温馨提示:答案为网友推荐,仅供参考