c语言经典20例(输入数组元素,进行排序并输出)

下面是C语言程序的文字讲解,该程序实现了输入数组元素、对其进行选择排序并输出排序后的数组。

#include <stdio.h>

void selectionSort(int arr[], int n) {
    int i, j, min_idx, temp;

    // 一次移动未排序部分的边界
    for (i = 0; i < n-1; i++) {
        // 找到未排序部分的最小元素的索引
        min_idx = i;
        for (j = i+1; j < n; j++) {
            if (arr[j] < arr[min_idx]) {
                min_idx = j;
            }
        }

        // 将找到的最小元素与未排序部分的第一个元素交换
        temp = arr[min_idx];
        arr[min_idx] = arr[i];
        arr[i] = temp;
    }
}

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

int main() {
    int n, i;

    // 获取用户输入的数组大小
    printf("Enter number of elements in the array:\n");
    scanf("%d", &n);

    // 创建数组
    int arr[n];

    // 获取用户输入的数组元素
    printf("Enter %d integers:\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    // 对数组进行排序
    selectionSort(arr, n);

    // 输出排序后的数组
    printf("Sorted array: \n");
    printArray(arr, n);

    return 0;
}

1. 程序开始:首先包含标准输入输出头文件 stdio.h。

2. 定义选择排序函数:selectionSort 函数接收一个整型数组 arr 和数组的大小 n 作为参数。该函数负责对数组进行选择排序。

3. 选择排序算法:
   外层循环:变量 i 从数组的第一个元素开始,到倒数第二个元素结束。这个循环负责逐步减少未排序部分的大小。
   内层循环:变量 j 从 i+1 开始,到数组的最后一个元素结束。这个循环负责在未排序的部分中找到最小元素的索引 min_idx。
   交换操作:如果在内层循环中找到了一个比当前 min_idx 更小的元素,则更新 min_idx。外层循环结束后,交换当前 i 位置的元素与 min_idx 位置的元素。

4. 定义打印数组函数:printArray 函数接收一个整型数组 arr 和数组的大小 size 作为参数。该函数负责打印数组中的所有元素。

5. 主函数:main 函数是程序的入口点。
   获取数组大小:使用 printf 打印提示信息,并使用 scanf 读取用户输入的数组大小 n。
   创建数组:根据用户输入的大小 n 创建一个整型数组 arr。
   输入数组元素:使用 printf 打印提示信息,并使用一个循环和 scanf 读取用户输入的数组元素。
   调用排序函数:使用 selectionSort 函数对数组进行排序。
   输出排序后的数组:使用 printf 打印提示信息,并调用 printArray 函数打印排序后的数组。

6. 程序结束:main 函数返回 0,表示程序正常结束。
 

猜你喜欢

转载自blog.csdn.net/lxsxjsj/article/details/143418324