用选择法实现数组中的数按从大到小的次序排列。

用选择法实现数组中的数按从大到小的次序排列。用选择法实现数组中的数按从大到小的次序排列。

参考如下:


#include<stdio.h>

// 从大到小排序
void sort(int a[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(a[j]>a[k])    // 从小到大,只需要 a[j] < a[k]
                k=j;
        if(k!=i)
        {
            t=a[k];
            a[k]=a[i];
            a[i]=t;
        }
    }
}

int main() 
{
     
    int n;
    printf("Input n:");
    scanf("%d", &n);
     
    printf("Input %d numbers:", n);

    int a[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    sort(a, n);

    printf("Sorting results:");
    for (int i = 0; i < n; i++) {
        printf("%4d", a[i]);
    }

    return 0;
}