Bonjour à tous, je suis nouveau ici, je me suis inscris il y a peu! je fréquentais de temps en temps le forum afin de trouver des réponses sur certains de mes problèmes.
Il est évident que je ne cherche pas une réponse qui fera le boulot à ma place mais plutôt une orientation vers la bonne solution.
Ici, je viens à vous afin de trouver une solution à un problème dont je vais vous exposez le code mais avant des explications s'impose.
C'est un projet que je dois réaliser pour première année bachelier (Belgique), je dois le rendre pour la fin des vacances, tout est terminé sauf un dernier traitement que je dois effectuer.
Avant que vous voyez le code et que vous vous demandez pourquoi j'ai fais comme ça et pas comme ça, voici les conditions du professeur:
- Utilisation de tableau à deux dimension
- pas de (pointeur) pas exactement mais une façon est décrite pour passer en paramètre un tableau
- Toutes fonction d'une bibliothèque doit être réaliser par moi même
- ne pas être tenter à utiliser les pointeurs(ce qui serait plus simple)
Sachez que ce projet consiste à enregistrer des clients(prénom) dans un tableau de N dimension et les afficher par la suite en ordre alphabétique voilà pourquoi il faut utiliser un tableau à deux dimension.
Vous devez savoir que j'ai réalisé cette partie du code à pars du projet afin de la tester proprement et pour mieux m'y retrouver, une fois bien en fonction je l'intègrerai dans le reste du code.
Mon problème est que le tri ne s'effectue pas correctement et je ne trouve pas la solution en plus je travaille comme un malade la journée et je n'ai que mes soirée pour bosser dessus! (cours du soir) un petit coup de pouce ça serait le bienvenue.
Je vous remercie d'avance, j'espère que les explications on été clair!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 #include <stdio.h> #include <stdlib.h> int strcomp(char tab[][31],int i); void tri_bulle(char tri[][31]); int compteur_caractere(char tri[][31],int i); int main() { int i,j; char tab[5][31]; char tri[5][31]; for(i=0;i<4;i++) { printf("\nEntrez un mot:"); gets(tab[i]); } //Copie Tab dans tri for(i=0;i<4;i++) { for(j=0;j<=compteur_caractere(tab,i);j++) tri[i][j]=tab[i][j]; } printf("\n\n\n\n"); //affiche le tableau tab for(i=0;i<4;i++) { printf("%s\n",tab[i]); } tri_bulle(tri); printf("\n\n\n\n"); //affiche le tableau tri for(i=0;i<4;i++) { printf("%s\n",tri[i]); } return 0; } int strcomp(char tab[][31],int i) { int j=0; while(tab[i][j] != '\0' && tab[i+1][j] != '\0') { if (tab[i][j] != tab[i+1][j]) { if (tab[i][j] > tab[i+1][j]) return (1); if (tab[i][j] < tab[i+1][j]) return (-1); } j++; } return (0); } void tri_bulle(char tri[][31]) { int i,a,j; int parcours; char tempon[31]; parcours=3; for(a=0;a<parcours;a++) { for(i=0;i<3;i++) { if(strcomp(tri,i)==1) { for(j=0;tempon[j]=='\0';++j) { tempon[j]=tri[i][j]; } for(j=0;tri[i][j]!='\0';j++) { tri[i][j]=tri[i+1][j]; } for(j=0;tri[i+1][j]!='\0';j++) { tri[i+1][j]=tempon[j]; } } } parcours--; } } int compteur_caractere(char tri[][31],int i) { int j=0; // est le numéro de cellule while (tri[i][j]!='\0') { j++; } return j; }
Partager