题目:对10个数进行排序。

程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。

实例

#include <stdio.h>
#define N 10

int main() {
    int i, j, a[N], temp;
    
    printf("请输入 10 个数字:\n");
    for (i = 0; i < N; i++)
        scanf("%d", &a[i]);
    
    for (i = 0; i < N - 1; i++) {
        int min = i;
        for (j = i + 1; j < N; j++)
            if (a[min] > a[j])
                min = j;
        
        if (min != i) {
            temp = a[min];
            a[min] = a[i];
            a[i] = temp;
        }
    }
    
    printf("排序结果是:\n");
    for (i = 0; i < N; i++)
        printf("%d ", a[i]);
    printf("\n");
    
    return 0;
}

以上实例输出结果为:

请输入 10 个数字:
23 2 27 98 234 1 4 90 88 34
排序结果是:
1 2 4 23 27 34 88 90 98 234

该程序使用选择排序算法对输入的10个数字进行排序。选择排序的思想是每次从剩余未排序的元素中选择一个最小的元素,并将其与当前位置的元素交换。程序中使用两层循环,外层循环控制选择的起始位置,内层循环从起始位置后面的元素中寻找最小元素的索引,如果找到最小元素则进行交换。最终输出排序结果。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题