IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

probleme avec while e affichage


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut probleme avec while e affichage
    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

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Avec un message aussi expéditif sans même un "bonjour", je dois avouer que cela ne me donne pas vraiment envie de t'aider.

    Sinon, pourrions-nous avoir la fin de ta première boucle afin que nous puissions t'aider ? (ie avoir le code de la boucle en entier).

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    je suis désolé .bonjour a tous !!!

    alors pour la suite de programme :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void afficherLivre(struct Livre *livre){
            int i;
            printf("\n Livre trouve:\n");
            printf("Code livre %d \n", livre->code);
            printf("Auteur du livre %s \n", livre->auteur);
            printf("titre du livre %s \n", livre->titre);
            for (i = 0; i < 5; i++)
            {
            printf("mot cles %d :", i+1);
            printf("%s \n", livre->motsCle[i]);
            }

  4. #4
    Membre habitué
    Avatar de Grumphette
    Homme Profil pro
    Validation manager
    Inscrit en
    Juillet 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Validation manager

    Informations forums :
    Inscription : Juillet 2008
    Messages : 81
    Points : 192
    Points
    192
    Par défaut
    C'est tout a fait normal, ton affichage est dans ta boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (temp!=NULL){...}
    et comme temp ne passe jamais à NULL, tu va répéter ta boucle de recherche
    et donc d'affichage à l'infini.

    Et de plus si je peux me permettre un conseil, évite les if en "one line", ça t'évitera bien des bug.

Discussions similaires

  1. probleme avec les charts(affichage du digramme en pdf)
    Par ergo_proxy dans le forum Jasper
    Réponses: 3
    Dernier message: 30/12/2011, 13h25
  2. Probleme avec sprintf et affichage?
    Par nanettemontp dans le forum C++
    Réponses: 16
    Dernier message: 15/10/2007, 14h45
  3. probleme avec while Perl
    Par imorum dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2007, 19h03
  4. Problème avec while et paramètres
    Par mittim dans le forum Linux
    Réponses: 4
    Dernier message: 08/08/2006, 10h47
  5. Probleme avec WHILE
    Par beb30 dans le forum C
    Réponses: 14
    Dernier message: 05/04/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo