C++ 数组排序插入元素:从大到小排序并插入新元素
C++ 数组排序插入元素:从大到小排序并插入新元素
本代码实现将键盘输入的'n'个整数排序(从大到小),并插入一个新整数,使其保持排序。代码使用C++语言编写,并提供详细解释。
代码:
#include <iostream>
using namespace std;
void fib(int arr[], int x, int n, int cut) {
for (int i = n; i > cut; i--) {
arr[i] = arr[i - 1];
}
arr[cut] = x;
}
int main() {
int n;
cin >> n;
int arr[100] = { 0 };
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int x;
cin >> x;
int cut = 0;
while (cut < n && arr[cut] > x) {
cut++;
}
fib(arr, x, n, cut);
n++; // 更新数组的大小
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
代码解释:
- 头文件包含:
#include <iostream>包含了标准输入输出流库,用于从键盘输入数据和输出结果。 - 命名空间:
using namespace std;将代码置于std命名空间中,避免重复写std::。 fib函数: 该函数用于将新元素x插入到已排序的数组arr中,并保持排序。arr[]: 接收一个整数数组作为参数。x: 接收要插入的整数作为参数。n: 接收数组的大小作为参数。cut: 接收要插入位置的索引作为参数。- 函数通过循环将
cut位置之后的元素向后移动一位,然后将x插入到cut位置。
main函数: 主函数,程序执行的起点。n: 接收用户输入的整数个数。arr[100]: 定义一个大小为100的整数数组,用于存储用户输入的整数。- 从键盘读取
n个整数并存储到arr数组中。 x: 接收用户输入要插入的整数。cut: 初始化为0,用来记录要插入的位置。- 使用
while循环找到要插入的位置cut,该位置满足cut < n且arr[cut] > x。 - 调用
fib函数将x插入到arr数组的cut位置。 - 更新数组大小
n。 - 输出插入后的排序数组。
运行结果:
用户输入:
10
2 7 9 11 5 4 3 6 8 20
12
输出:
20 12 11 9 8 7 6 5 4 3 2
总结:
本代码实现了将键盘输入的'n'个整数排序(从大到小),并插入一个新整数,使其保持排序。该代码使用了数组和循环结构,并定义了fib函数来实现插入操作。希望该代码能帮助您理解C++语言中的数组操作和排序算法。
原文地址: https://www.cveoy.top/t/topic/b9Ev 著作权归作者所有。请勿转载和采集!