Ciao,
Io userei una struttura, il primo elemento è il valore e il secondo il suo indice.

codice:
#include <stdio.h>
#include <stdlib.h>

#define MAX 15

typedef struct vettore {  
        int elemento;
        int indice;
        } VET;

int main()
{
    VET w[MAX],temp;
    int i,j;
    
    for (i=0;i<MAX;i++)                 // carico un vettore random
    {    w[i].elemento=rand()%100+1;
         w[i].indice=i;
       }
    
    for (i=MAX-1; i>0; i--)            // ordino vettore
      for(j=0; j<i; j++)
         if ( w[j].elemento < w[j+1].elemento )
         {    
              temp=w[j];
              w[j]=w[j+1];
              w[j+1]=temp;
              }
    
     // stampa di prova

     for (i=0;i<MAX;i++)
         printf("Valore-> %d , Indice-> %d \n",w[i].elemento,w[i].indice); 
         
     system("PAUSE");
}
La funzione di ordinamento è un bubble sort, non molto efficiente per molti elementi, però l'dea è questa.

Ciao.