天天看点

5-19 选择法排序 (20分)

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

输入格式:

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

输出格式:

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

输入样例:

4
5 1 7 6
           

输出样例:

7 6 5 1
           
#include<stdio.h>
int main()
{
 int i,k,a[10],n,temp,max;
 scanf("%d",&n);
 for(i=0;i<n;i++){
  scanf("%d",&a[i]);
 }
 for(k=0;k<n-1;k++){
  max=k;
  for(i=k+1;i<n;i++)
  if(a[max]<a[i])
  max=i;
  temp=a[max];
  a[max]=a[k];
  a[k]=temp;
 }
 for(i=0;i<n;i++){
  if(i+1==n)
  printf("%d",a[i]);
  else
  printf("%d ",a[i]); 
 }
 return 0;
}