Aide programme en C

Fermé
Lilou - 15 oct. 2004 à 18:11
 garth - 16 oct. 2004 à 00:51
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]);
}

}

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
0
Salut!

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 */
0
/* erreur */

#include <cstdlib>

/* ouf! ^^ */
0
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.
0

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
0