数组的排序

37 阅读1分钟

要数组完成排序功能需要如下两个动作:

1.交换数组的元素值

代码如下:

int arr[5] = {5 ,3, 4, 1, 2};
printf("%d", arr[0]);
printf("%d\n", arr[1]);

int a = arr[0];
arr[0] = arr[1];
arr[1] = a;
printf("%d", arr[0]);
printf("%d", arr[1]);

效果如图:

屏幕截图 2025-12-04 203010.png

解析:

屏幕截图 2025-12-04 204042.png

2.比较相邻元素的大小 将最大值放在最后面

代码如下:

int arr[5] = {6, 5, 4, 3, 2};
	

for(int j = 0; j < 4; j++){
    if(arr[j] > arr[j + 1]){
        int a = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = a;
    }
} 

for (int i = 0; i < 5; i++){
    printf("%d", arr[i]);
}

效果如图:

屏幕截图 2025-12-04 203811.png

此段代码和上面类似只是在此基础上加了个for循环(可以将最大值放在最后)

*以上代码理解后就基本上学会了**排序***

那么出一题来巩固排序:

输入5个数字 对他们排序 并打印

代码如下:

int arr[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 a = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = a;
        }
    }
}  
	
printf("----------------\n"); 
	
for (int i = 0; i < 5; i++){
    printf("%d\n", arr[i]);
}

效果如图:

屏幕截图 2025-12-04 204805.png