C语言数组排序问题练习案例代码

题目描述

数组排序
设置一个可以存放1000个整数的数据集合(一维数组),输入一个整数n,输入n个整数存放在集合中。利用冒泡法对集合进行由大到小排序,输入一个整数X,插入排序后的集合中,使得数组依然有序。
输入
第一行一个整数n。
第二行n个整数,赋值给集合。
第三行一个整数X,为插入数据。
输出
第一行 请输入实际元素个数n:提示输入集合元素个数
第二行 输出插入新数据之后的集合。
示例:
输入:
5
12 36 54 78 98
36
输出:
请输入实际元素个数n:
98 78 54 36 36 12

案例代码

#include<stdio.h>

void bubble_sort(int arr[], int n) {
    int i, j, temp;
    for(i = 0; i < n; i++) {
        for(j = 0; j < n-i-1; j++) {
            if(arr[j] < arr[j+1]) {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

void insert_data(int arr[], int n, int x) {
    int i;
    for(i = n-1; i >= 0; i--) {
        if(x > arr[i]) {
            arr[i+1] = arr[i];
        } else {
            break;
        }
    }
    arr[i+1] = x;
}

int main() {
    int n, arr[1000], x, i;
    
    printf("请输入实际元素个数n: ");
    scanf("%d", &n);
    
    printf("输入n个整数: ");
    for(i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    printf("输入插入数据: ");
    scanf("%d", &x);
    
    bubble_sort(arr, n);
    insert_data(arr, n, x);
    
    printf("插入新数据之后的集合: ");
    for(i = 0; i < n+1; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}

运行截图

图片[1]-C语言数组排序问题练习案例代码-QQ沐编程

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