本题要求将给定的n个整数从大到小排序后输出。

本题要求将给定的n个整数从大到小排序后输出。

输入格式:

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

4
5 1 7 6

输出样例:

7 6 5 1
#include <stdio.h>

void SelectSort( int nums[10], int n );

int main(){
    int n, i;
    
    scanf("%d", &n);
    
    int nums[n];
    
    for( i=0; i<n; i++ )
        scanf(" %d", &nums[i]);
    
    SelectSort( nums, n );
    
    for( i=0; i<n-1; i++ )
        printf("%d ", nums[i]);
    
    printf("%d", nums[n-1]);
    
    return 0;
}

void SelectSort( int nums[10], int n ){    // 选择排序
    for( int i=0; i<n-1; i++ ){
        int max = i;
        for( int j=i+1; j<n; j++ ){
            if( nums[max] < nums[j] )
                max = j;
        }
        if( max != i ){
            int temp = nums[max];
            nums[max] = nums[i];
            nums[i] = temp;
        }
    }
}


版权声明:本文为ProceduralMan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。