Debes utilizar una tercera tabla para almacenar ahí los indices de los elementos una vez ordenados. En base a ella ya puedes imprimir la segunda tabla con el orden de la primera.
Para ejemplificar (el array ndx es la tabla de indices):
Un saludo
Para ejemplificar (el array ndx es la tabla de indices):
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num[3] = {3, 1, 2};
int ndx[3] = {0, 1, 2}; /* Indices de los elementos */
char ch[3] = {'a', 'b', 'c'};
int N = 3;
int i;
int j;
/* Ordenacion mediante BubbleSort */
for (i = N - 1; i > 0; i--){
for (j = 0; j < i; j++)
if (num[ndx[j]] > num[ndx[j + 1]]){
int aux;
aux = ndx[j];
ndx[j] = ndx[j + 1];
ndx[j + 1] = aux;
}
}
for (i = 0; i < N; i++)
printf(" %c", ch[ndx[i]]);
putchar('\n');
return EXIT_SUCCESS;
}
Un saludo