En tout cas, ça créé des bugs quand je l'enlève...
Version imprimable
En tout cas, ça créé des bugs quand je l'enlève...
Si tu compiles avec g++, ce n'est pas possible, tu dois avoir oublié d'enlever le }mot;
Ce qui donne :
Code:
1
2
3
4 struct mot { symbole* symboles; unsigned int taille; };
Héhé... :dehors:
Bonjour,
Ça faisait trop déjà trop longtemps que je n'avais pas eu des problèmes! :mouarf:
Je dois programmer la fonction qui compare deux mots.
Je rappelle ma structure:
et voilà ce que j'ai écrit pour egaux:Code:
1
2
3
4 struct mot { symbole * symboles; unsigned int taille; };
Mais prendre le k-ième symbole de a et b me pose problème... D'autant qu'il y a des bugs dus à la fonction egaux...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 bool egaux(mot const* a , mot const* b) { bool A=true; unsigned int i=longueur(a); unsigned int j=longueur(b); unsigned int k; if (i!=j) { A=false; } else { for (k=0; k<j;k++) { // if(!egaux( symbole à la k-ième place dans a, symbole à la k-ième place dans b)) { A=false; } } return A; } }
Merci.
Tu parcours ton tableau de symbole (via le simple opérateur []) présent dans les 2 mots et quand un des deux symboles est différent, tu met ton bool à false et tu n'oublies pas sortir de ta boucle. Mais c'est vraiment simple, tu devrais pouvoir débugger ça tout seul, si tu n'y arrives pas, alors il faut que tu passes par un "pseudo-code" c'est à dire un code plus ou moins en français dans lequel tu expliques ce que tu fais. Ensuite tu pourras retranscrire plus facilement en C++ et comprendre tes problèmes.