C语言输入一组整数排序,插入一个整数再次排序显示结果

题目描述

从键盘任意输入一组整数,按照由大到小的顺序排成数列,显示排序后的结果再任意输入一个整数,将其插入数列中,仍保证数列的递减顺序,显示插入后的结果

案例答案

下面是一个使用C语言实现的代码,可以实现从键盘任意输入一组整数,按照由大到小的顺序排成数列,再任意输入一个整数,将其插入数列中,仍保证数列的递减顺序,最后显示插入后的结果:

#include <stdio.h>

#define MAX_SIZE 100

// 插入函数,将value插入到数组a中,使得a仍然保持递减顺序
void insert(int a[], int n, int value) {
    int i;
    for (i = n - 1; i >= 0; i--) {
        if (value > a[i]) {
            a[i+1] = a[i];
        } else {
            break;
        }
    }
    a[i+1] = value;
}

int main() {
    int n, i, num;
    int a[MAX_SIZE];

    // 输入一组整数
    printf("Enter the number of integers: ");
    scanf("%d", &n);
    printf("Enter %d integers: ", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    // 排序
    for (i = 0; i < n-1; i++) {
        int j;
        for (j = i+1; j < n; j++) {
            if (a[i] < a[j]) {
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }

    // 显示排序后的结果
    printf("Sorted sequence: ");
    for (i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");

    // 插入一个整数
    printf("Enter an integer to insert: ");
    scanf("%d", &num);
    insert(a, n, num);
    n++;

    // 显示插入后的结果
    printf("Sequence after insertion: ");
    for (i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");

    return 0;
}

上述代码首先输入一组整数,然后进行排序,再输入一个整数,将其插入到已排序的数组中。最后显示插入后的结果。

运行上述代码,输入示例数据,将会得到以下输出:

Enter the number of integers: 5
Enter 5 integers: 3 1 4 2 5
Sorted sequence: 5 4 3 2 1
Enter an integer to insert: 6
Sequence after insertion: 6 5 4 3 2 1

上述输出展示了输入一组整数3、1、4、2、5,排序后得到5、4、3、2、1,然后将整数6插入到数组中,得到6、5、4、3、2、1。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞16赞赏 分享