用C语言写一个可以排序的程序

代码解析:

c 复制代码
输入部分:通过for循环读取 5 个整数存入数组arr,利用scanf获取键盘输入。(以5个数为例,可任意改变数字多少)
排序部分:采用冒泡排序:
外层循环控制 "排序轮数"(5 个元素需 4 轮,每轮确定 1 个最大元素的位置);
内层循环控制 "每轮比较次数"(j<4-i是优化写法,每轮比较次数随已排好的元素数量减少,提升效率);
通过交换操作,将较大的元素逐步 "移动" 到数组末尾。
输出部分:补全了循环打印逻辑,遍历数组输出排序后的元素。

完整代码:

C 复制代码
#include <stdio.h>
int main() {
    // 定义存储5个数字的数组
    int arr[5];

    // 从键盘输入5个数字
    for(int i=0; i<5; i++){
        scanf("%d", &arr[i]);
    }

    // 冒泡排序(从小到大)
    for(int i=0; i<4; i++){  // 共进行4轮排序(5个元素只需排4轮)
        // 每轮将当前最大的元素"冒泡"到末尾,内层循环次数逐轮减少
        for(int j=0; j<4-i; j++){  
            if(arr[j] > arr[j+1]){  // 若前一个元素大于后一个,交换位置
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }

    // 打印排序后的结果
    printf("排序后的结果:");
    for(int i=0; i<5; i++){
        printf("%d ", arr[i]);
    }
    return 0;
}

运行结果:

相关推荐
哈市雪花1 分钟前
记录一次cmake无法正确使用vcpkg的问题
开发语言·c++
小李小李快乐不已7 分钟前
贪心算法理论基础
c++·算法·leetcode·贪心算法
Trouvaille ~8 分钟前
【C++篇】C++11新特性详解(三):高级特性与实用工具
开发语言·c++·stl·lambda·完美转发·包装器·可变参数模版
C语言小火车15 分钟前
【C++】从零开始构建C++停车场管理系统:技术详解与实战指南
开发语言·c++·毕业设计·课程设计
.简.简.单.单.18 分钟前
Design Patterns In Modern C++ 中文版翻译 第九章 装饰器
开发语言·c++·设计模式
橘颂TA20 分钟前
【剑斩OFFER】算法的暴力美学——两数相加
c++·算法·结构与算法
XFF不秃头22 分钟前
力扣刷题笔记-和为 K 的子数组
c++·笔记·算法·leetcode
w-w0w-w23 分钟前
【无标题】
c++
枫叶丹432 分钟前
【Qt开发】Qt事件(三)-> QMouseEvent 鼠标事件
c语言·开发语言·c++·qt·microsoft·计算机外设
草莓熊Lotso1 小时前
C++ 智能指针完全指南:原理、用法与避坑实战(从 RAII 到循环引用)
android·java·开发语言·c++·人工智能·经验分享·qt