思想:
利用一个新的数组存储原数据的地址,根据原数据,对地址进行排序。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num[9] ,sign[9];
int i,j,r=0;
for(j=0;j<9;j++)
{
scanf("%d",&num[j]);
sign[j]=j;
}
for(i=1;i<9;i++)
{
if(num[r]>num[i])
r=i;
}
int max,maxS;
for(i=8;i>0;i--)
{
max=r;maxS=0;
for(j=0;j<=i;j++)
{
if(num[max]<num[sign[j]])
{
max=sign[j];
maxS=j;
}
}
sign[maxS]=sign[i];
sign[i]=max;
}
for(i=0;i<9;i++)
{
printf("%d %d\n",num[sign[i]],sign[i]);
}
return 0;
}