Bonjour à tous, voilà je débute en C++ et j'aimerais réaliser une fonction qui permet de faire une dichotomie dans un dictionnaire, ce qui me permettrais donc d'y placer un nouveau mots ou de voir si le mot existe.
Merci d'avance pour votre aide
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 //voilà le dico struct mots { char nom[10]; int numero; }; struct mots dico[20]={{"absent",3},{"content",5},{"disparu",1},{"grand", 6},{"heureux", 2},{"immense", 4},{"minus", 7},{"petit",8} }; //voila la fonction qui marche qu'a moitié... void cherche (void) { int taille; int i,j, bas, haut ; char mot[20] ={}; cout<<"Entrer la taille de votre mots : "; cin>>taille; cout<<"Entrer le mot a chercher : "; for (i = 0 ; i < taille ; i++) { cin>>mot[i]; } j = 0; bas=1; haut=8; while (bas <= haut) { j=(bas+haut)/2; if (mot[0]<=dico[j].nom[0]) haut = (j-1); else bas=(j+1); } cout<<j; }
Partager