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 :

fonction doublement recursive


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut fonction doublement recursive
    bonjour,

    je n'arrive pas a ecrire une fonction doublement recursive en C++ .
    Voici mon programme :
    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
    #include <iostream>
    using namespace std;
     
    bool pair (int n);
    bool impair (int n);
     
    bool pair (int n){
      if(n==0){
        return true;
      }
      else{
        return (impair(n-1));
      }
    }
     
    bool impair (int n){
      if(n==0){
        return false;
      }
      else{
        return (pair(n-1));
      }
    }
     
    main(){
      int nombre;
      cout << "donnez un nombre " ;
      cin >> nombre;
      if(pair(nombre)){
        cout << nombre << " est pair"<< endl;
      }
      else{
        cout << nombre << " est impair"<< endl;
      }
    }
    et le message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    prog.cc: In function 'bool impair(int)':
    prog.cc:21: error: 'pair' was not declared in this scope
    prog.cc: In function 'int main()':
    prog.cc:29: error: 'pair' was not declared in this scope
    ce qui m'echape c'est que le programme suivant :
    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
    #include<stdio.h>
    #include<stdlib.h>
     
    int pair (int n);
    int impair (int n);
     
    int pair (int n){
      if(n==0){
        return 1;
      }
      else{
        return (impair(n-1));
      }
    }
     
    int impair (int n){
      if(n==0){
        return 0;
      }
      else{
        return (pair(n-1));
      }
    }
     
    main(){
      int nombre;
      printf("%d", pair(3));
    }
    compile parfaitement en C
    si quelqu'un peut m'aider
    merci

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    std::pair est un type, a cause de ton using namespace std il y a conflit.

    Solution, vire le using et qualifie explicitement.

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    merci, j'ai prefere changer le nom de ma fonction : paire

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Jusqu'au jour ou tu vas avoir un autre conflit... qui ne se manifestera pas par une erreur a la compilation mais par une mauvaise execution.

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    Tu penses donc que des le debut de l'apprentissage du C++, il vaut mieux prendre l'habitude d'ecrire std::cout ?

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Oui.

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

Discussions similaires

  1. fonction reverse recursive
    Par gandalffe dans le forum Prolog
    Réponses: 3
    Dernier message: 22/11/2009, 10h38
  2. [XSL] Fonction sum recursive?
    Par TiBen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/06/2009, 11h16
  3. Réponses: 1
    Dernier message: 25/05/2007, 13h17
  4. Fonction template recursive, avec imbrication de types
    Par YéTeeh dans le forum Langage
    Réponses: 5
    Dernier message: 28/04/2006, 17h02
  5. probleme sql, fonction recursive
    Par CaptainChoc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/11/2005, 01h45

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