【问题描述】
输入一个正整数n(1 <n≤10),再输入n个整数,将它们从大到小排序后输出。
【输入形式】
从键盘输入一个正整数n和n个整数。
【输入输出样例1】(下划线部分表示输入)
Input n: 4
Input 4 integers: 5 1 7 6
After sorted: 7 6 5 1
【样例说明】
输入提示符后要加一个空格。例如“Input n: ”,其中“:”后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。
#include<stdio.h>
int max(int a[],int len);
int main(){
int i,n;
printf("Input n: ");
scanf("%d",&n);
int a[n];
printf("Input %d integers: ",n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
int len=sizeof(a)/sizeof(a[0]) ;
for(i=len-1;i>0;i--){
int max_id=max(a,i+1);
int t=a[max_id];
a[max_id]=a[i];
a[i]=t;
}
printf("After sorted: ");
i=len-1;
if(i>=0){
while(i>=0){
printf("%d ",a[i]);
i--;
}
}else{
while(i>=0){
printf("%d ",a[i]);
i--;
}
}
return 0;
}
int max(int a[],int len){
int i,max_id=0;
for(i=1;i<len;i++){
if(a[i]>a[max_id]){
max_id=i;
}
}
return max_id;
}