Académique Documents
Professionnel Documents
Culture Documents
(Résolu) Débutant en C - Trier Tableau - Comment Faire - Par MoMoTrAtRa - OpenClassrooms
(Résolu) Débutant en C - Trier Tableau - Comment Faire - Par MoMoTrAtRa - OpenClassrooms
Accueil > Forum > Programmation > Langage C > Débutant en C : trier tableau ?
Liste des forums Mes interventions Sujets suivis Rechercher sur le forum
Sujet résolu
Es ce qu'une personne sait comment creer un fonction qui trie un tableau de valeurs par ordre
croissant en langage C ?
1 #include <stdio.h>
2
3 #include <stdlib.h>
4
5 void ordonnerTableau(int tableau[], int tailleTableau);
6
7 int main()
8
9 {
10
11 int tableau[7]={6,8,5,9,2,1,0},i=0;
12
13
14
15 ordonnerTableau(tableau,7);
16
17 return 0;
18
19 }
20
21 void ordonnerTableau(int tableau[], int tailleTableau)
22
23 {
24
25 int i=0;int permutateur=0;int k=0;
26
27 for (i=0;i<tailleTableau;i++)
28
29 {
30
31 if (tableau[i+1]<=tableau[i])
32
33 {
34
35 permutateur=tableau[i];
36
37 tableau[i]=tableau[i+1];
38
39 tableau[i+1]=permutateur; permutateur=0;
40
41 }
42
43 }
44
45 for (i=0;i<tailleTableau;i++)
46
47 {
48
49 printf("Valeur: %d\n",tableau[i]);
50
51 }
52
53 }
En fait je veux qu'a la n que les valeurs du tableau soit af cher par ordre de croissance.
-
Edité par MoMoTrAtRa 15 août 2015 à 18:19:10
Wow wow, doucement, pas besoin de gros mots ni de MOTS COMME CA.
Tout d'abord, pour qu'on puisse t'aider, il faut que tu poste ton code dans les balises </>
pour que ça donne quelque chose comme ça :
Ensuite, comment faire pour trier un tableau? Tu prends une feuille, un stylo, tu fais un
tableau et tu trouve un moyen pour trier ton tableau.
EDIT : Et rajoute le résultat que te donne ton code en l'état actuel des choses.
-
Edité par pagrette 13 août 2015 à 11:46:27
Pour ton tri, que se passe t'il si tu as une suite comme 13, 21, 10 ? n'as tu pas oublié certaines
conditions dans ton tri ? parce qu'il me semble qu'avec ton code ça donne un truc comme
13 10 21...
-
Edité par moratar 13 août 2015 à 11:48:49
MohamedTraoré a écrit:
Es ce qu'une personne sait comment creer un fonction qui trie un tableau de valeurs par ordre
croissant en langage C ?
(...)
Bien sur qu'on sait, en n, la plupart. On voit même du premier coup d'oeil ce qui ne va pas
dans ton code, il y a au moins deux raisons, mais on te le dira pas parce que ça ne t'aiderait
pas.
Comme tu nous as présenté le source, on suppose que tu veux suivre la première voie, c'est
à dire
L'idée de base, c'est que ça ne marche pas. Tu as dû le constater, sinon tu ne serais pas là.
on va supposer que c'est un résultat incorrect. Un moyen de voir ce qui ne va pas, c'est de
faire dérouler à la main, papier-crayon, pour our à quel moment ça ne se passe pas comme
on voudrait. Mais là tu as fait un test sur un tableau de 7 cases, ça risque d'être un peu long.
Tu peux essayer de trouver un tableau plus petit où ça ne marche pas non plus. 1 seule
case. 2 cases. 3 cases. Et là, tu tu auras un petit exemple qui ne marche pas, où tu pourras
faire dérouler à la main.
-
Edité par michelbillaud 13 août 2015 à 12:15:07
-
Edité par bibou261 13 août 2015 à 12:47:06
Salut salut !
Tout d'abord je vois des variables déclarées non utilisées (i dans main et k dans
ordonnerTableau) mais la n'est pas le probleme.
Ensuite, dans ton code on voit que 0 se trouve en dernier dans ton tableau, comment peut-
il remonter au début avec une seule permutation ?.. regarde le lien de bibou261 tu devrais
mieux comprendre.
+1
D'abord pour commencer, je vous presente mes excuse pour la facon dont je me suis exprimé,
Et en n, vos remarques peuvent vraiment aider, j'ai fais les corrections, et voila le programme, et ca
fonctionne parfaitement bien Au fait j'avais pas totalement compris le fonctionnement des
pointeurs, apres une revision ca donne ça:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 void ordonnerTableau(int tableau[], int tailleTableau);
5 int main()
6 {
7 int i=0;
8 int tableau[11]={65,23,8,0,5,1,6,83,20,4,0};
9 ordonnerTableau(&tableau,11);
10 for(i=0;i<11;i++)
11 {
12 printf("%d\n",tableau[i]);
13 }
14 return 0;
15 }
16
17 void ordonnerTableau(int tableau[], int tailleTableau)
18 {
19 int permutateur=0;int i=0;int rps=0;
20 do
21 {
22 for(i=0;i<tailleTableau-1;i++)
23 {
24 if(tableau[i+1]<tableau[i])
25 {
26 permutateur=tableau[i];
27 tableau[i]=tableau[i+1];
28 tableau[i+1]=permutateur;
29 } rps++;
30 }
31 } while (rps<tailleTableau*tailleTableau);
32 }
Merci a tous
-
Edité par MoMoTrAtRa 15 août 2015 à 18:17:23
Pour Pagrette, je sais pas vraiment comment faire pour ce que tu viens de montrer, mais bon je
chercher comment faire prochainnement.
D'accord. Alors on lira ton message prochainement quand tu l'auras remis en forme
correctement.
C'est pas pour t'embêter, il suf t que tu lises ce qu'on t'a dit, et d'un autre côté, af ché
comme ça, c'est pas lisible.
le </>, c'est un bouton qui apparait quand tu tapes ou modi es ton message. regarde bien.
clique dessus.
-
Edité par michelbillaud 15 août 2015 à 17:10:12
Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour ×
poser ta question.
HTML
Répondre
Cookies
Accessibilité