给定一个已经按从小到大顺序排列的数组,从键盘输入一个数,将其插入到原有数组中并保持大小顺序,输出插入前后的两个数组,并将被挤出的最大数(有可能就是被插入数)返回给主函数输出。
时间: 2024-04-30 18:18:31 浏览: 93
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
下面是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int insert(int a[], int n, int x) {
int max_num = a[n - 1]; // 记录最大数
int i = n - 1;
while (i >= 0 && a[i] > x) {
a[i + 1] = a[i];
i--;
}
a[i + 1] = x;
cout << "插入前的数组为:";
for (int j = 0; j < n; j++) {
cout << a[j] << " ";
}
cout << endl;
cout << "插入后的数组为:";
for (int j = 0; j < n + 1; j++) {
cout << a[j] << " ";
}
cout << endl;
return max_num;
}
int main() {
int a[100];
int n, x;
cout << "请输入数组长度n:";
cin >> n;
cout << "请输入已排序的数组:";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << "请输入要插入的数x:";
cin >> x;
int max_num = insert(a, n, x);
cout << "被挤出的最大数为:" << max_num << endl;
return 0;
}
```
运行结果:
```
请输入数组长度n:5
请输入已排序的数组:1 3 5 7 9
请输入要插入的数x:4
插入前的数组为:1 3 5 7 9
插入后的数组为:1 3 4 5 7 9
被挤出的最大数为:9
```
阅读全文