#include<stdio.h>
#include<malloc.h>
int *sortindex(int a[],int n)
{
int i,j,temp;
int *p;
p=(int*)malloc(sizeof(int)*n);
for( i=0;i<n;i++)
p[i]=a[i];
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(p[j]>p[j+1])
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
printf("\n");
return p;
free(p);
}
void main()
{
int i,j;
int a[9]={1,2,9,6,4,3,5,8,7};
int *p;
for( i=0;i<9;i++)
printf("%3d",a[i]);
printf("\n");
p=sortindex(a,9);
for(i=0;i<9;i++)
for( j=0;j<9;j++)
{
if(a[i]==p[j])
printf("%3d",j);
}
printf("\n");
}
1.这里面定义一个指针类型的函数,所以函数返回的要是一个地址。
2.定义另外一个数组和原杂乱数组一样,然后给新定义的数组排列顺序(从小到大),然后用排序后的新定义的数组与原杂乱数组相比较,输出他的下标i的值,就是每个数组元素在数组里面的大小排列序号。