排序

32 阅读2分钟

排序:

1.从键盘上输入10个数字,并对他们进行排序(从小到大排序),再打印输出

2.交换数组中两个元素的值

3.通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面

4.排序完整版


1.从键盘上输入10个数字,并对他们进行排序(从小到大排序),再打印输出:

(一)代码如下:

#include <stdio.h>
int main(){
	
    // 从键盘上输入10个数字,并对他们进行排序(从小到大排序),再打印输出
    // 类型 数组名[个数]
    int arr[5];

    // 从键盘上输入10个数字
    for(int i=0; i<5; i++){
        scanf("%d", &arr[i]);
    }

    printf("----------\n");

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

(二)运行结果如下:

image.png


2.交换数组中两个元素的值:

(一)示例:

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

(二)代码如下:

#include <stdio.h>
int main(){
	
    int arr[5] = {5,3,2,6,4};
    
    // 排序: 2,3,4,5,6

    // 1. 交换数组中两个元素的值!
    // {5,3,2,6,4}
    // 把下标为0的元素,和下标为1的元素换一下位置? {3,5,2,6,4}
    int temp = arr[0]; // temp = 5;
    
    arr[0] = arr[1]; // arr[0] = 3;
    
    arr[1] = temp; // arr[1] = 5

    printf("%d", arr[0]);
    printf("%d", arr[1]);
}

(三)运行结果如下:

image.png


3.(1)通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面

(一)代码如下:

// 2. 通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面
for(int j = 0; j<4;j++){
    if(arr[j] > arr[j+1]){
        int temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
    }
}

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

}
}

(二)运行结果如下:

image.png


(2)改进:

(一)代码如下:

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

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

(二)运行结果如下:

image.png


4.排序完整版:

(一)代码如下:

#include <stdio.h>
int main(){
    // 从键盘上输入5个数字,并对他们进行排序(从小到大
    // 类型 数组名[个数]
    int arr[5];

    // 从键盘上输入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 temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }

    printf("----------\n");
    // 打印输出
    for(int i=0; i<5;i++){
    	printf("%d\n",arr[i]);
	}
}

(二)运行结果如下:

image.png