En tout cas, ça créé des bugs quand je l'enlève...
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 struct mot { symbole* symboles; unsigned int taille; };
Bonjour,
Ça faisait trop déjà trop longtemps que je n'avais pas eu des problèmes!
Je dois programmer la fonction qui compare deux mots.
Je rappelle ma structure:
et voilà ce que j'ai écrit pour egaux:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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 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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager