Allora, il problema è il seguente: sto scrivendo un programma riguardante una corsa di ciclisti, ed ho un vettore "int tempo[]={0,0,0,0,0}" dove memorizzo i tempi dei ciclisti, e un array di stringhe chiamato classifica (char classifica[5][20]) dove memorizzo i nomi dei ciclisti, e che una volta ordinato riporta in ordine i nomi della classifica. Premetto che in tempo[0] trovo il tempo del primo ciclista, e in classifica[0] il nome del primo ciclista (questa corrispondenza vale anche per gli altri ciclisti).
Ora, vorrei sfruttare un algoritmo di ordinamento per ordinare il vettore tempo, e in contemporanea il l'array di stringhe, ho provato in questo modo:
int tempo[]={0,0,0,0,0};
char classifica[5][20], el2[20];
int main()
{
for (i=1;i<5;i++) { // ordinamento tempi e ciclisti
el1 = tempo[i];
el2[19] = classifica[i][19];
j = i-1;
while(j>=0 && el1 < tempo[j]) {
tempo[j+1] = tempo[j];
classifica[j+1][19] = classifica[j][19];
j--;
}
tempo[j+1] = el1;
classifica[j+1][19] = el2[19];
}
for (i=0; i < 5; i++) {
printf("Al primo posto abbiamo %s con un tempo di %d.\n", classifica[i], tempo[i]);
}
return 0;
}
Alla fine però i tempi risultano ordinati, ma i nomi non coincidono più con i tempi. Dov'è che sbaglio?