C++让用户输入一个数,插入原有的有序数列并输出新的有序数列
时间: 2024-11-22 11:35:00 浏览: 12
C++版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现
在C++中,你可以使用`cin`获取用户输入的数,并通过迭代或排序算法将其插入到已有的有序数列中。这里是一个简单的例子,我们将使用冒泡排序法作为排序机制:
```cpp
#include <iostream>
using namespace std;
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
// 交换元素
swap(arr[j], arr[j + 1]);
}
}
}
}
int main() {
int size;
cout << "请输入数列的大小:";
cin >> size;
// 创建一个动态数组存储有序数列
int* sortedArray = new int[size];
cout << "请输入" << size << "个数字(按升序输入):" << endl;
for (int i = 0; i < size; ++i) {
cin >> sortedArray[i];
}
// 检查新输入是否需要插入
int inputNumber;
cout << "请输入一个新数:";
cin >> inputNumber;
// 插入新数并保持数列有序
bool inserted = false;
for (int i = 0; i < size && !inserted; ++i) {
if (inputNumber <= sortedArray[i]) {
sortedArray[size++] = inputNumber;
inserted = true;
break;
}
}
// 如果没找到合适的位置,添加到末尾
if (!inserted) {
sortedArray[size] = inputNumber;
++size;
}
// 输出新的有序数列
cout << "插入新数后的有序数列为:";
for (int i = 0; i < size; ++i) {
cout << sortedArray[i] << " ";
}
// 清理内存
delete[] sortedArray;
return 0;
}
```
阅读全文