第2个回答 推荐于2017-12-16
#include "stdio.h"
void main()
{
int cj[8],px[8],temp[8],m;
for (int i=0;i<8;i++)
{
scanf("%d",cj+i);
temp[i] = cj[i];
px[i] = i;
}
int iMax,vMax;
for (i=0;i<8;i++)
{
iMax = i;
vMax = temp[i];
for (int j=i;j<8;j++)
{
if (temp[j]>vMax)
{
iMax = j;
vMax = temp[j];
}
}
m = temp[i];
temp[i] = temp[iMax];
temp[iMax] = m;
m = px[i];
px[i] = px[iMax];
px[iMax] = m;
}
for (i=0;i<8;i++)
{
printf("%d ",temp[i]);
}
printf("\n");
for (i=0;i<8;i++)
{
printf("%d ",px[i]);
}
printf("\n");
}本回答被网友采纳
第3个回答 2013-05-12
#include<stdio.h>
#include<malloc.h>
int px[8]={0};
void sortindex(int a[],int n)
{
int *p;
int temp;
p=(int*)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
p[i]=i;
for(i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
for(i=0;i<8;i++)
px[8-i-1]=p[i];
free(p);
}
void main()
{
int cj[8]={12,2,31,231,0,123,679,790};
for(int i=0;i<8;i++)
printf("%d\t",cj[i]);
printf("\n");
sortindex(cj,8);
for(i=0;i<8;i++)
printf("%d\t",px[i]);
printf("\n");
}