运用c++编写n 个数,已按从小到大顺序排列。在主函数中输入一个数,调用一个函数,它把输入的 数插入原有数列中,保持大小顺序,输出插入前后的两个数组,并将被挤出的最大数(有可能就是被插入数)返回给主函数输出。
时间: 2024-05-05 18:22:12 浏览: 43
以下是一个简单的实现:
```c++
#include <iostream>
using namespace std;
const int MAXN = 1000;
int a[MAXN];
int insert(int n, int x) {
int pos = n;
for (int i = 0; i < n; i++) {
if (a[i] >= x) {
pos = i;
break;
}
}
for (int i = n; i > pos; i--) {
a[i] = a[i-1];
}
a[pos] = x;
return a[n-1];
}
int main() {
int n, x;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cin >> x;
int max_num = insert(n, x);
cout << "插入前的数组:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl << "插入后的数组:";
for (int i = 0; i < n+1; i++) {
cout << a[i] << " ";
}
cout << endl << "被挤出的最大数为:" << max_num << endl;
return 0;
}
```
我们首先定义了一个数组a,用于存储原有的数列。然后在主函数中,先输入n和原有的n个数,再输入要插入的数x。调用insert函数,将x插入到a数组中,同时返回被挤出的最大数。最后输出插入前后的数组和被挤出的最大数即可。
insert函数的实现思路如下:
首先在原有数列中找到插入位置pos,然后将pos之后的数都往后移一位,再将x插入到pos位置上即可。最后返回被挤出的最大数,即数组的最后一位。
阅读全文