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;
}

代码解释:

  1. 头文件包含: #include <iostream> 包含了标准输入输出流库,用于从键盘输入数据和输出结果。
  2. 命名空间: using namespace std; 将代码置于std命名空间中,避免重复写std::
  3. fib 函数: 该函数用于将新元素x插入到已排序的数组arr中,并保持排序。
    • arr[]: 接收一个整数数组作为参数。
    • x: 接收要插入的整数作为参数。
    • n: 接收数组的大小作为参数。
    • cut: 接收要插入位置的索引作为参数。
    • 函数通过循环将cut位置之后的元素向后移动一位,然后将x插入到cut位置。
  4. main 函数: 主函数,程序执行的起点。
    • n: 接收用户输入的整数个数。
    • arr[100]: 定义一个大小为100的整数数组,用于存储用户输入的整数。
    • 从键盘读取n个整数并存储到arr数组中。
    • x: 接收用户输入要插入的整数。
    • cut: 初始化为0,用来记录要插入的位置。
    • 使用while循环找到要插入的位置cut,该位置满足cut < narr[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++语言中的数组操作和排序算法。

C++ 数组排序插入元素:从大到小排序并插入新元素

原文地址: https://www.cveoy.top/t/topic/b9Ev 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录