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 :

Mauvais retour de fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Mauvais retour de fonction
    Bonsoir,

    Voici mon soucis, ma fonction ne me renvoie pas ce que j'attends alors que cela à l'air plutôt bon. Voila ma fonction:

    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
    liste reste (arbre a, liste L)
    {
          if (feuille? (a))
          {
                printf ("%c", a->val);
     
                return L;
          }
          else
          {
                if (L != NULL)
                {
                      if (L->val == 0)
                      {
                            reste (a->fg, L->next);
                      }
                      else
                      {
                            reste (a->fd, L->next);
                      }
                }
          }
     
          return NULL;
    }
    Cette fonction me renvoie dans tout les cas NULL, alors qu'elle devrait me renvoyer le reste de la liste si je tombe sur une feuille. Merci à ceux qui pourront m'aider

  2. #2
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Salut
    Tu esperes faire quoi avec ca?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Tout simplement comme le nom de la fonction l'indique savoir si l'arbre a est une feuille ou non

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et où c'est déclaré ? qu'est-ce que c'est ??

  5. #5
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Citation Envoyé par scary Voir le message
    Tout simplement comme le nom de la fonction l'indique savoir si l'arbre a est une feuille ou non
    C'etait plus un indice qu'une question Les noms de fonctions ne peuvent etre composes que de lettres, de chiffres et d'underscores.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Voici la fonction qui déclare la fonction feuille? () ou plutot est_feuille (), j'avais oublié de changer le nom lorsque j'ai fait le post autant pour moi j'étais encore dans l'algo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int est_feuille(const arbre a)
    {
        return !(a->fg || a->fd);
    }

  7. #7
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    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
    liste reste (arbre a, liste L)
    {
          if (feuille? (a))
          {
                printf ("%c", a->val);
     
                return L;
          }
          else
          {
    ....
          }
     
          return NULL;
    }
    Si le if n'est pas satisfait, le seul point de sortie de la fonction est le return NULL.

    Ta récursivité est mal construite : Tu devrais utiliser les valeurs de retour des appels récursifs à reste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ....
                      if (L->val == 0)
                      {
                            reste (a->fg, L->next);
                      }
                      else
                      {
                            reste (a->fd, L->next);
                      }
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme: mauvais retour de fonction
    Par kururin dans le forum Langage
    Réponses: 12
    Dernier message: 22/01/2007, 22h20
  2. Retour de fonction en C
    Par troumad dans le forum Linux
    Réponses: 2
    Dernier message: 06/11/2005, 21h43
  3. Utilisation d'un retour de fonction dans un decode
    Par CFVince dans le forum Oracle
    Réponses: 4
    Dernier message: 20/10/2005, 17h22
  4. Réponses: 2
    Dernier message: 30/09/2005, 15h48
  5. Référence en retour de fonction, à transformer en hash
    Par raoulchatigre dans le forum Langage
    Réponses: 4
    Dernier message: 15/07/2005, 14h24

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