已经能够实现在num数组中排序,如何实现打印出排序的下标

#include<stdio.h>
void sort(int a[],int n)
{
int i,j,t,t1;
for(i=0;i<n;i++)
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}

int main()
{
int i,j,num[4][4]={{0,2,1,3},{2,0,4,2},{2,4,0,5},{6,2,1,0}},temp[256],k;
printf("请输入友好邻居数:");
scanf("%d",&k);
for(i=0;i<4;i++)
{
printf("家庭%d:",i+1);
for(j=0;j<4;j++)
temp[j]=num[i][j];
sort(temp,4);
for(j=0;j<k;j++)
printf("%d ",temp[j]);
printf("\n");

}

}

你说的应该是map
用HashMap存下标和值
然后对map进行排序,用一个数组是无法实现的

看看这个行不行

#include<stdio.h>
void sort(int a[],int n)
{
    int i,j,t,t1;
    for(i=0; i<n; i++)
        for(j=0; j<n-1-i; j++)
            if(a[j]<a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
}

int main()
{
    int i,j,num[4][4]= {{0,2,1,3},{2,0,4,2},{2,4,0,5},{6,2,1,0}},temp[256],k;
    printf("请输入友好邻居数:");
    scanf("%d",&k);
    for(i=0; i<4; i++)
    {
        printf("家庭%d:",i+1);
        for(j=0; j<4; j++)
            temp[j]=num[i][j];
        sort(temp,4);
        for(j=0; j<k; j++)
        {
           // printf("%d ",temp[j]);
        }
        //printf("\n");
        for(j=0; j<k; j++)
        {
            printf("[%d][%d] ",i,j);
        }

        printf("\n");

    }

}

这样?

#include<stdio.h>
void sort(int a[],int n)
{
    int i,j,t,t1;
    for(i=0; i<n; i++)
        for(j=0; j<n-1-i; j++)
            if(a[j]<a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
}
int main()
{
    int i,j,h,cout=0,num[4][4]= {{0,2,1,3},{2,0,4,2},{2,4,0,5},{6,2,1,0}},temp[256],k;
    printf("请输入友好邻居数:");
    scanf("%d",&k);
    for(i=0; i<4; i++)
    {
        printf("家庭%d:",i+1);
        for(j=0; j<4; j++)
            temp[j]=num[i][j];
        sort(temp,4);
        for(j=0; j<k; j++)
        {
            printf("%d ",temp[j]);
        }
        //printf("\n");
        for(j=0; j<k; j++)
        {
            //printf("[%d][%d] ",i,j);
        }
        printf("\n");
    }
    for(h=0; h<k; h++)
    {
        for(j=0; j<4; j++)
        {
            for(i=0; i<4; i++)
            {
                if(temp[h]==num[i][j])
                {
                    printf("%d %d  ",i,j);
                    //h++;
                    cout++;
                    if(cout%4==0&&cout!=0)
                    {
                        printf("\n");
                    }
                }
            }
            //printf("\n");
        }

    }
}