用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 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
星恒随风2 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
浪客灿心2 小时前
项目篇:模块设计与实现
数据库·c++
牛油果子哥q3 小时前
【C++ STL vector】C++ STL vector 终极精讲:动态数组底层原理、两倍扩容机制、迭代器失效、增删查改、性能剖析与工程避坑指南
开发语言·c++
为何创造硅基生物4 小时前
独占指针的创建std::make_unique 本身自带堆出现
c++
kyle~5 小时前
ROS 2 与 Isaac Sim 联合仿真(一)体系架构、环境选型与基础通信闭环
c++·机器人·nvidia·仿真·ros2
努力努力再努力wz5 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
八解毒剂5 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
起床困难户5756 小时前
条款20:协助完成返回值优化
c++
啦啦啦啦啦zzzz6 小时前
算法总结(二分查找、双指针)
c++·算法