Aide svp programation c Urgen

sarah - 16 janv. 2010 à 22:22
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 16 janv. 2010 à 23:57
Bonjour,
j'ai un exercice en C que j'arrive pas a compiler , voici l'énoncé :

Écrire une fonction récursive calculant la valeur de la "fonction d'Ackermann" A définie
pour m>0 et n>0 par :
A(m,n) = A(m-1,A(m,n-1)) pour m>0 et n>0
A(0,n) = n+1 pour n>0
A(m,0) = A(m-1,1) pour m>0.


Voila ce que j'ai fait ^^ :

#include <stdio.h>
#include <stdlib.h>



int A( int m , int n )
{
int resultat=0;
if ( m>0 && n>0)
return A(m-1,A(m,n-1));
else if(m>0 && n=0)
return A(m-1,1);
else
resultat=n-1;
return resultat;
}



int main(int argc, char *argv[])
{
int m=0,n=0,b=0;
scanf("%d",&m);
scanf("%d",&n);
b=A(m,n);
printf(" le resultat est %d ",b);
system("PAUSE");
return 0;
}


svp j'ai besoin d'aide le plus vite possible et merci bcp

2 réponses

@Jon@ Messages postés 70 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010
16 janv. 2010 à 23:44
Bonjour,

Qu'est-ce que tu reçois comme message d'erreur lors de la compilation ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845
16 janv. 2010 à 23:57
Bonjour,

resultat=n-1;
return resultat;

Ca ne serait pas plutôt return n+1; Ou alors il y a une erreur dans ton énoncé.

Sinon l'erreur vient de là je pense : else if(m>0 && n=0)
A cause du n=0 (qui affecte 0 à n) et renvoie 0, ta condition sera toujours fausse.
Pour comparer n à 0, il faut mettre : else if(m>0 && n==0) (opérateur double égal).

Cdlt,
0