Aide programme en C
Lilou
-
garth -
garth -
J'ai un prbleme avec ce prgramme de tri, passé 3 nombres à trier ça déraille, c'est trié dans l'ensemble mais un nombre vient se mettre au milieu, vous voyez où se situe mon erreur ?
#include <stdio.h>
main ()
{
int tab [20];
int taille, i, fini, elemCour, j ;
printf("Tri d'entiers par ordre croissant\n");
printf ("Combien de nombres a trier ? " ) ;
scanf ("%d", &taille);
for (i=0; i<taille; i++)
{printf ("Nombre numero %d : ", i+1);
scanf ("%d", &tab [i]);
}
for (i=1 ; i <taille ; i++)
{elemCour=tab [i];
j=i;
fini=0;
while (fini==0)
{if (j==0)
fini=1;
else if (tab [i-1]>elemCour)
{tab [j]=tab [j-1];
j--;
}
else fini=1;
}
tab [j]=elemCour;
}
for (i=0 ; i<taille ; i++)
{printf (" %d ", tab [i]);
}
}
#include <stdio.h>
main ()
{
int tab [20];
int taille, i, fini, elemCour, j ;
printf("Tri d'entiers par ordre croissant\n");
printf ("Combien de nombres a trier ? " ) ;
scanf ("%d", &taille);
for (i=0; i<taille; i++)
{printf ("Nombre numero %d : ", i+1);
scanf ("%d", &tab [i]);
}
for (i=1 ; i <taille ; i++)
{elemCour=tab [i];
j=i;
fini=0;
while (fini==0)
{if (j==0)
fini=1;
else if (tab [i-1]>elemCour)
{tab [j]=tab [j-1];
j--;
}
else fini=1;
}
tab [j]=elemCour;
}
for (i=0 ; i<taille ; i++)
{printf (" %d ", tab [i]);
}
}
A voir également:
- Aide programme en C
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
5 réponses
si tu veux 1 conseil, fait ton tri grâce au "tri à bulle" ....
Cet algo marche à chaque coup et est très performant.
Si tu veux l'algo, ecris moi ... je l'ai dans un coin de mon dossier "C++" ;)
++
NeptuS
Cet algo marche à chaque coup et est très performant.
Si tu veux l'algo, ecris moi ... je l'ai dans un coin de mon dossier "C++" ;)
++
NeptuS
Salut!
C'est à but scolaire? Sinon tu peux directement utiliser le quick sort du standard C/C++.
C'est à but scolaire? Sinon tu peux directement utiliser le quick sort du standard C/C++.
/* en c */ #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void*)); /* base est le tableau a trier nmemb le nombre d'elements size la taille d'un element en octet compar est une fonction de comparaison de 2 elements a definir if 1st arg < 2nd arg return value < 0 if 1st arg == 2nd arg return value == 0 if 1st arg > 2nd arg return value > 0 */ /* en c++ */ #include <cstdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void*)); /* meme proto mais contenu dans la class std */
Ton code est franchement dégeulasse, tu pourrais au moins faire un petit effort pour le clarifier. En clarifiant ton code c'est 99 % des erreurs que tu t'économises à rechercher.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ecoute lilou le tri a bulle ne fonctionne pas tres bien je te conseille plutot de consulter mon site : www.prendtoiunegrossecartouche.com