razuki | Bonjour, j'ai fait un petit programme censé trier un tableau, écrit en langage C. 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 :
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;
- }
|
voici le resultat avec TAB2 :
0 |1 |2 |3 |4 |5 |6 |7 |8 |8 |
voici le resultat avec 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. Message édité par gilou le 08-01-2011 à 00:54:28
|