输入一个正整数 n (1<n≤10),再输入 n 个整数,将它们从大到小排序后输出。
试编写相应程序。
#include<stdio.h>
#define MAXN 10
int main(void)
{
int n,i,index,temp,tem;
int a[MAXN];
printf("enter n:");
scanf("%d",&n);
printf("enter %d number:",n);
for(i=0;i<n;i++){
scanf("%d",&a[i]); /*赋值给数组*/
}
for(int m=0;m<n-1;m++){ /*开始一个大循环*/
index=m;
for(i=m+1;i<=n-1;i++){ /*在a[i]时,通过在除去这个a[i]之外的一个循环寻找更小的值*/
if(a[i]<a[index])
{
index=i; /*找到了更小的值对应的后标*/
}
}
temp=a[index]; /*将这个更小的值换到数组中i偏小的一个个体中*/
a[index]=a[m];
a[m]=temp;
}
for(int k=0,j=n-1;k<j;k++,j--){ /*将从小到大的排列顺序转变为从大到小*/
tem=a[k];
a[k]=a[j];
a[j]=tem;
}
printf("after :");
for(i=0;i<n;i++){
printf("%d ",a[i]); /*依次输出*/
}
printf("\n");
return 0;
}