可以先用冒泡排序对数组进行排序,然后对排序的数组进行遍历,找出其在排序之前数组中的位置,参考代码如下:
#include<
stdio.h>
#include<
string.h>
#define N 5
int main()
{
int a[N],b[N],c[N],i,j,temp;
for(i=0;i<N;i++){//输入数组,并用b保存数组a的值
scanf("%d",&a[i]);
b[i]=a[i];
}
for(i=0;i<N-1;i++)//对a从大到小冒泡排序
for(j=0;j<N-i-1;j++)
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<N;i++)//输出排序后的a
printf("%d ",a[i]);
printf("\n");
for(i=0;i<N;i++)//遍历找出以前的位置
for(j=0;j<N;j++){
if(a[i]==b[j])
c[i]=j;
}
for(i=0;i<N;i++)//输出位置数组
printf("%d ",c[i]+1);
printf("\n");
return 0;
}