从键盘接受3个整数,把这三个整数插入升序排列的数组里,并保持数组有序
时间: 2024-10-13 08:03:36 浏览: 48
有序整型数组,插入一个动态输入整数,保证插入后依然有序。(利用冒泡排序)
当你需要从键盘接收三个整数并将它们插入一个已排序的数组中,可以按照以下步骤操作:
1. 首先,创建一个空数组或初始化一个长度足够的已排序数组。假设这个数组叫`sortedArray`。
2. 使用循环三次(因为你要输入三个数字),通过标准输入(例如`cin`在C++中)获取用户的输入,将每个输入转换成整数,然后存储到临时变量中,如`temp_int`。
3. 对于新输入的整数,遍历`sortedArray`,找到合适的位置将其插入以保持数组的升序。可以使用二分查找法或者简单地从数组尾部开始向前比较,直到找到比新数小的元素前一位,插入新数。
4. 插入新数后,更新数组的索引。如果找到了正确的插入位置,直接插入;如果没有找到,则将新数放在最后一个位置(因为数组已经升序,所以最后肯定是有序的)。
5. 当所有三个数字都插入完成后,`sortedArray`就包含了用户提供的三个整数,而且仍然保持升序排列。
以下是一个简单的C++示例代码片段:
```cpp
#include <iostream>
using namespace std;
// 假设我们有一个int类型的数组
void insertIntoSorted(int* arr, int size, int num) {
if (size == 0 || num <= arr[size - 1]) {
// 如果数组为空或者新数不大于最后一个数,直接插入
arr[size] = num;
} else {
// 找到插入位置并插入
for (int i = 0; i < size; ++i) {
if (num <= arr[i]) {
memmove(&arr[i + 1], &arr[i], sizeof(int) * (size - i));
arr[i] = num;
break;
}
}
}
}
int main() {
int sortedArray[3]; // 初始化一个长度为3的数组
int temp;
for (int i = 0; i < 3; ++i) {
cin >> temp;
insertIntoSorted(sortedArray, i, temp);
}
// 输出插入后的数组
for (int i = 0; i < 3; ++i) {
cout << sortedArray[i] << " ";
}
return 0;
}
```
阅读全文