用c++代码编写,以下n个数,已按从小到大顺序排序。在主函数中输入一个数,调用一个数,调用一个函数,它把输入的数插入原有数列中,保持大小排序,输出插入前后的两个数组,并将被挤出的最大数(有可能就是被插入数)返回给主函数输出
时间: 2024-05-07 13:23:39 浏览: 49
以下是用C++代码实现的插入数列并返回被挤出的最大数的程序:
```cpp
#include <iostream>
using namespace std;
const int MAXN = 100; // 数组的最大长度
void insert(int a[], int& n, int x) {
int i;
for (i = n - 1; i >= 0 && a[i] > x; i--) {
a[i + 1] = a[i]; // 向后移动大于x的元素
}
a[i + 1] = x; // 插入x
n++; // 数组长度加1
}
int main() {
int a[MAXN], n, x;
cout << "请输入原有数列的长度n:";
cin >> n;
cout << "请输入" << n << "个已按从小到大顺序排序的数:";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << "请输入要插入的数x:";
cin >> x;
insert(a, n, x); // 插入x
cout << "插入前的数列为:";
for (int i = 0; i < n - 1; i++) {
cout << a[i] << " ";
}
cout << a[n - 1] << endl; // 输出插入前的数列
cout << "插入后的数列为:";
for (int i = 0; i < n - 1; i++) {
cout << a[i] << " ";
}
cout << a[n - 1] << endl; // 输出插入后的数列
cout << "被挤出的最大数为:" << a[n - 2] << endl; // 输出被挤出的最大数
return 0;
}
```
程序中的 `insert` 函数实现了将数列中插入一个数并保持数列的有序性。主函数中先输入原有数列的长度和已排序的数列,然后再输入要插入的数x。接着调用 `insert` 函数将x插入数列,并输出插入前后的数组以及被挤出的最大数。
阅读全文