12.9 C++ 笔记1

52 阅读1分钟

一.复习优化排序打印

image.png

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");
	}
}

排序打印结果: image.png

image.png