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]);
}
}
运行结果如下: