c++笔记12.9

59 阅读1分钟

image.png

复习优化

#include <stdio.h>
int main(){
    // 从键盘输入5个数,从小到大排序,输出
    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");
	}
}

image.png