Salve a tutti, ho questo problema:
ho scritto per risolvere diversi esercizi alcuni codici per ordinare dei vettori secondo il metodo selection sort. Premetto che i codici mi hanno funzionato. Quando, dovendo risolvere un esercizio un po' più complesso (dovevo ordinare due vettori) mi sono accorto che il programma non ordina il secondo vettore e non riesco a trovare l'errore. Posto qui sotto il frammento di codice.
#include<stdio.h>
#include<stdlib.h>
#define N 5
int main(){
int j, l, v2[N]={15,29,13,3,12}, temp2, posm2, max2;
for(j=0; j<N-1; j++){
max2=v2[j];
for(l=j; l<N; l++){
if(v2[l]>max2){
max2=v2[l];
posm2=l;
}
}
temp2=v2[j];
v2[j]=v2[posm2];
v2[posm2]=temp2;
}
for(l=0; l<N; l++){
printf("v2=%d \n", v2[l]);
}
return 0;
}
Il programma mi stampa a video:
29
13
15
12
3
Quindi non ordinato. Qual'è il problema?
Ringrazio in anticipo!