在上一条的代码基础上优化了两点
1.优化循环次数
2.增加了一个跳出循环
#include <stdio.h>
int main(){
int arr[5];
for(int i = 0 ; i < 5 ; i++){
scanf("%d",&arr[i]);
}
for(int i = 0 ; i < 4 ; i++ ){
int isSwitch = 0;
for(int j = 0;j < 4-i;j++){
//j < 4-i 让循环次数更明显
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");
}
}