Un programme qui tri un tableau dans l'ordre croissant
saidinfo
Messages postés
17
Statut
Membre
-
saidinfo Messages postés 17 Statut Membre -
saidinfo Messages postés 17 Statut Membre -
j'ai déja essai avec s'est valeur (21,18,20,17,19) mais malheureusement joujours la case n°4 ne change pas aidez moi svp !!
#include <stdio.h>
#include <stdlib.h>
#define nb 5
void tri(int t[],int i)
{ int v=0,j=0;
for (i=1;i<nb;i++)
{
v=t[i];
j=i;
while (t[i-1]>v)
{
v=t[i-1];
t[i-1]=t[i];
t[i]=v;
}
}
for (i=nb-1;i>0;i--)
{
v=t[i];
j=i;
while(t[i-1]>v)
{
v=t[i-1];
t[i-1]=t[i];
t[i]=v;
}
}
}
int main()
{
int i,t[100];
printf("un programme qui tri dans l'ordre croisssant d'un tableux !\n");
for (i=0;i<nb;i++)
{
printf("entrer la valeur n°%d\n",i+1);
scanf("%d",&t[i]);
}
printf("le tableau inverse est \n");
tri(t,i);
i=0;
while (i<nb)
{
printf("%d\t",t[i]);
i++;
}
return 0;
}
A voir également:
- Comment trier un tableau en c
- Trier un tableau excel - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Comment faire un tableau croisé dynamique - Guide
2 réponses
Le problème vient de ta fonction de tri !
Le while n'est pas adapté ici, un if convient. Mais je pense que tu as essayé de coder, sans succès, un tri à bulles.
Regarde ici pour avoir une idée de comment implémenter le tri à bulles : https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
Accessoirement, fais gaffe quand tu déclares ton tableau de taille 100 (ligne 35), et que tu utilises nb (= 5) partout ailleurs.
Ici ça ne pose pas de problème, mais si tu changes nb pour une valeur plus grande que 100, tu auras des problèmes.
Le while n'est pas adapté ici, un if convient. Mais je pense que tu as essayé de coder, sans succès, un tri à bulles.
Regarde ici pour avoir une idée de comment implémenter le tri à bulles : https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
Accessoirement, fais gaffe quand tu déclares ton tableau de taille 100 (ligne 35), et que tu utilises nb (= 5) partout ailleurs.
Ici ça ne pose pas de problème, mais si tu changes nb pour une valeur plus grande que 100, tu auras des problèmes.
fiddy
Messages postés
11653
Statut
Contributeur
1 847
Yep, mais il faudra un while/for en plus du if
saidinfo
Messages postés
17
Statut
Membre
effectivement fanck merci infiniment
saidinfo
Messages postés
17
Statut
Membre
fiddy t'as totalement raison !! mrc