一.复习优化排序打印
1.优化版
#include <stdio.h>
/**/
int main() {
// 从键盘输入五个数,从小到大排序,输出
int arr[5];
// 1 2 3 5 4
for(int i =0; i<5;i++){
scanf("%d", &arr[i]);
}
// 通过一个for循环,比较相邻的俩个元素,做交换
//把最大的元素换到数组的最后一个位置
for(int i = 0; i<4;i++){
//假设没有交换
int isSwitch = 0;
for(int j=0; j<4-i;j++){
// j, j+1
if(arr[j]>arr[j+1]){ // 做交换
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
isSwitch = 1; // 有交换
}
}
// 如果一次交换没有发生,说明已经有序了,就不用再循环
if(isSwitch == 0){
break;
}
for(int k=0;k<5;k++){
printf("%d" , arr[k]);
}
printf("\n");
}
}
排序打印结果: