本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例1:
4
5 1 7 6
输出样例1:
7 6 5 1
答案代码块
#include <stdio.h>
int main(){
int n,m=0,x=0;
int i,l;
int s[10]={0};
scanf("%d",&n);
for(i = 0 ; i < n;i++){
scanf("%d",&s[i]);
}
for(i = 0 ; i < n ; i++){
int cnt=-1; //-1的目的也是为了下面如果当前位数字最大则不交换位置
m=s[i];
for(l=i+1;l<n;l++){
if(s[l]>m){ //判断m为最大数字
m=s[l];
cnt=l;
}
}
if(cnt!=-1) { //交换
x=s[cnt];
s[cnt]=s[i];
s[i]=x;
}
}
printf("%d",s[0]);
for(i = 1 ; i < n ; i++){
printf(" %d",s[i]);
}
return 0;
}