C 数字排序

要求:输入一个正整数n, 再输入n个整数,将它们按从小到大的顺序输出

 

// 输入指定的整数,然后把整数按从小到大的顺序每5个一行输出
#include <stdio.h>
void order(int *a, int len); //函数声明
int main()
{
    int n;
    printf("您要输入几个整数?\n");
    scanf("%d", &n);
    int a[n];
    printf("请输入%d个整数:\n", n);
    for (int i = 0; i<n; i++) {
        scanf("%d", &a[i]);
    }
    order(a, n);
    printf("After sorting: \n");
    for (int i = 0; i<n; i++) {
        printf("%3d ", a[i]);
        if ((i+1) % 5 == 0) { //每输出5个,换行
            printf("\n");
        }
    }
    return 0;
}

void order(int *a, int len)
{
    int temp;
    for (int i = 0; i<len; i++) {
        for (int j = i+1; j<len-1; j++) {
            if (a[j] < a[i]) { //思路是,第一轮循环中,先假定a[0]最小,接下来只需要a[0]与后面的a[1], a[2]...依次比较,如果有a[x]比a[0]还小,就让a[x]为a[0],循环下去
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
            }
        }
    // printf("a[%d] = %d\n", i, a[i]); //查看每次循环的结果
    }
}

 

posted @ 2020-05-07 23:19  profesor  阅读(406)  评论(0编辑  收藏  举报