Triage du tableau

devamos Messages postés 21 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 15 mars 2010 - 8 déc. 2008 à 19:27
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 11 déc. 2008 à 12:10
bonsoir,
s'il vous plait mes freres j'ai écri un petit programme qui tri un tableau de maniere croissante mais il ne veux plus marcher,,,,j'aimerais que vous me le corrigiez.Merci.

#include<stdio.h>
#include<conio.h>


int main()
{


int tab[100],i,j,n,x;


printf("donner n:"); // n est le nombre d'element à inserer dans le tableau
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Entrer un entier positif ou negatif :   ");
scanf("%d",&tab[i]);
}
printf("\n");
for(i=0;i<n;i++)
printf("%6d",tab[i]);
                             
                 for(i=0;i<n-1;i++)  
                 if (tab[i]>tab[i+1])
                       x = tab[i];
                       tab[i] = tab[i+1];
                       tab[i+1] = x;              
                             /printf("\n");
for(i=0;i<n;i++)
printf("%6d",tab[i]);
getch();
}

3 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 déc. 2008 à 03:57
salut

si tu presentais un code indente, on pourrait le lire plus facilement...

bon ensuite, t'as deux boucles imbriquees, mais elles modifient la meme variable...

et enfin if (tab[i]>tab[i+1]) on sait pas trop ce que ca fait ici...


AH Mais non... tes deux boucles ne sont PAS imbriquees, mais comme t'as indente, j'ai pas compris ton code...

serieux, c'est illisible...

bon, ton if il manque les accolades...

et c'est pas une methode de tri ca...
0
devamos Messages postés 21 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 15 mars 2010
10 déc. 2008 à 23:36
desolé Mr coucou, tu as raison ce n'est pas bien presenté en fait voila ce que je propose moi comme boucle de test :

for(i=0;i<n-1;i++)  
                 if (tab[i]>tab[i+1])
                       x = tab[i];
                       tab[i] = tab[i+1];
                       tab[i+1] = x;

ce que je voudrais faire c'est permuter le tab[i] et  tab[i+1] si  tab[i]>tab[i+1]....ansi de suite,,,etcomme ca j'aurai un vecteur trié
s'il vous plait si c'est pas juste ,veuillez me le corriger mes frers et merciiiiiiiiiiiiiiii
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 déc. 2008 à 12:10
nan mais... le C c'est pas du python !

comment le compilateur va deviner ou ton if se termine ?

ta methode de tri ne FONCTIONNE PAS !

si j'ai :

20 15 2

il va trier 20 et 15
=> 15 20 2
puis 20 et 2
=> 15 2 20

ca ne donne pas qqch de trie....

va sur wikipedia chercher un algo de tri.
0
Rejoignez-nous