C语言排序

52 阅读1分钟

1、输入部分:通过for循环读取 5 个整数存入数组arr,利用scanf获取键盘输入。(以5个数为例,可任意改变数字多少)

2、排序部分:采用冒泡排序;

3、外层循环控制 “排序轮数”(5 个元素需 4 轮,每轮确定 1 个最大元素的位置);

4、内层循环控制 “每轮比较次数”(j<4-i是优化写法,每轮比较次数随已排好的元素数量减少,提升效率);

5、通过交换操作,将较大的元素逐步 “移动” 到数组末尾。

6、输出部分:补全了循环打印逻辑,遍历数组输出排序后的元素。

代码如下:

#include <stdio.h>
int main(){
    int arr[5];
    // 输入5个元素到数组
    for(int i=0; i<5; i++){
        scanf("%d", &arr[i]);
    }
    // 冒泡排序(将数组按升序排列)
    for(int i=0; i<4; i++){
        for(int j=0; j<4; j++){
            if(arr[j] > arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    // 输出分隔线
    printf("-------\n");
    // 输出排序后的数组
    for(int i=0; i<5; i++){
        printf("%d\n", arr[i]);
    }
}

运行结果如下:

image.png