Ma fonction ne trie pas le tableau
Résolu
razuki
Messages postés
293
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
J'ai écrit un petit programme en C qui trie un tableau. Le problème est que il y a des nombres redondant et d'autres ne sont plus dans le tableau après le tri... Voici le code :
et voici le resultat :
pour TAB2 :
pour TAB1 :
J'aimerais savoir déjà d'ou vient ces redondances et pourquoi des nombres ont disparus ... ?
Merci d'avance pour votre aide.
J'ai écrit un petit programme en C qui trie un tableau. Le problème est que il y a des nombres redondant et d'autres ne sont plus dans le tableau après le tri... Voici le code :
void
sort_tab(int* tab){
//int taille = sizeof(tab)/sizeof(int);
int taille = 10;
int i, ind_min, courant;
int min;
for(courant=0; courant<taille; courant++){
min = tab[courant];
for(i=courant+1; i<taille; i++){
if(tab[i]<min){
min = tab[i];
ind_min = i;
}
}
tab[ind_min] = tab[courant];
tab[courant] = min;
}
}
void
print_tab(int* tab){
int j;
for(j=0; j<10; j++)
printf("%d |", tab[j]);
printf("\n");
}
int main(){
int i, j, taille;
//int toto[10] = {9, 1, 7, 2, 5, 3, 4, 6, 8, 0}; //TAB1
int toto[10] = {2, 3, 4, 5, 6, 7, 8, 9, 0, 1}; //TAB2
sort_tab(toto);
print_tab(toto);
return 0;
}
et voici le resultat :
pour TAB2 :
0 |1 |2 |3 |4 |5 |6 |7 |8 |8 |
pour TAB1 :
0 |1 |1 |2 |2 |3 |3 |4 |6 |8 |
J'aimerais savoir déjà d'ou vient ces redondances et pourquoi des nombres ont disparus ... ?
Merci d'avance pour votre aide.
A voir également:
- Ma fonction ne trie pas le tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
2 réponses
j'ai corrigé ta fonction de tri; ça devrais marché
essaye avec ça
et dans le main tu passe la taille de tes tableau en parametre en appelant sort_tab
essaye avec ça
void sort_tab(int *tab , int taille){
int temp;
int i, j;
for (i = 0; i < taille; i++)
for (j = 0; j < taille; j++)
if (tab[i] < tab[j])
{
temp = tab[i];
tab[i] = tab[j];
tab[j] = temp;
}
}
et dans le main tu passe la taille de tes tableau en parametre en appelant sort_tab
Cdlt,