Ma fonction ne trie pas le tableau
Résolu
razuki
Messages postés
242
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
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,