soit :
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
int recherche(struct Bibliotheque_noeud *bibliotheque){
    //init des vaiables temporaire
    mot motsCherche[3];
    int i;
    printf("Ecrire les mots clées a chercher \n");
 
    for (i=0;i<3;i++){
        printf("mot clé n %d :",i+1);
        scanf("%s",motsCherche[i]);
    }
 
//on utilise une variable temporelle pour ne pas changer la bibliotheque d origine
    struct Bibliotheque_noeud *temp;
    temp = bibliotheque;
 
//boucle de parcours
    //parcours de chaque livre
    while (temp!=NULL){
        int j;
        int k; k=0;
        int trouve; trouve=0;
        //parcours des 5 mots clés de chaque livre
        while (!(trouve) && (k<5)){
            j=0;
            //parcours des 3 chaines entrées
            while (!(trouve) && (j<3)){
                if (strcmp(motsCherche[j],temp->livre->motsCle[k])==0) trouve = 1;
                j++;
            }
            k++;
        }
        //affiche livre trouvé
        if (trouve == 1) afficherLivre(temp->livre)

enfin j'ai obtenu le resultat sauf qu'il apparait en boucle dans l'affichage!!
La recherche se fait par comparaison entre 5 mots cles de chaque livre et les 3 mots clés