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.

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;
}
Merci d'avance pour votre aide