Un programme qui tri un tableau dans l'ordre croissant
saidinfo
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
saidinfo Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
saidinfo Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
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
11069
Date d'inscription
Statut
Contributeur
Dernière intervention
1 846
Yep, mais il faudra un while/for en plus du if
saidinfo
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
effectivement fanck merci infiniment
saidinfo
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
fiddy t'as totalement raison !! mrc