C++已知有序的整型数组 a[10]={1,30,50,200,900},试编写一程序,从键盘输入一个整数,并将其插入到数组的合适位置,确保插入后数组的元素仍然有序。
时间: 2024-12-23 13:17:42 浏览: 5
为了实现在给定有序整型数组 `a` 中插入一个新元素并保持有序,你可以创建一个名为 `insert_sorted` 的函数,它接受两个参数:数组 `a` 和待插入的整数 `num`。这里是一个简单的 C++ 程序示例:
```cpp
#include <iostream>
// 定义一个插入操作,返回插入后的数组大小(含插入的新元素)
size_t insert_sorted(int arr[], int size, int num) {
// 遍历数组查找插入位置
for (size_t i = 0; i < size; ++i) {
if (num <= arr[i]) {
// 如果找到插入点或已到达数组末尾,则在这里插入并返回新的大小
std::copy(arr + i, arr + size, arr + i + 1); // 移动剩余元素
arr[i] = num;
return i + 1; // 返回新的数组长度
}
}
// 如果所有位置都不适合,将新元素加在数组末尾
arr[size] = num;
return size + 1;
}
int main() {
const int array_size = 10;
int a[array_size] = {1, 30, 50, 200, 900};
int num;
std::cout << "请输入一个整数:";
std::cin >> num;
size_t newArraySize = insert_sorted(a, array_size, num);
std::cout << "插入后的有序数组为:";
for (size_t i = 0; i < newArraySize; ++i) {
std::cout << a[i] << " ";
}
return 0;
}
```
当你运行这个程序并输入一个整数时,它会根据输入值在适当的位置插入,确保插入后的数组依然有序。
阅读全文