[C++] Probleme avec un petit programme

Probleme avec un petit programme [C++] - Programmation

Marsh Posté le 18-02-2002 à 22:12:07    

bah voila je doit faire ce petit programme avec une fonction RECURSIVE :
 
ecrire une fonction recursive PALIN(tab,i,j) qui prend en parametre un tableau de caractere et 2 entier i et j.
Elle doit renvoyé si la chaine de caractere compris entre i et j dans le tableau est un palindrome
 
un palindrome est une chaine qui se lit pareil des 2 sens exemple : LAVAL, ICI etc...
 
voila ce que j'ai ecrit mais ca compile pas, erreur :
 
 
 
 
int palin(char ,const int, const int );
 
void main()
{
     const int MAX=10;
     int x,y,resultat;
     char tab[MAX];
 
           cout<<"Entrez la chaine de caractere"<<endl;
           cin.getline(tab,MAX,'\0';);
 
           resultat=palin(tab,1,5);
}
 
int palin(char tab,const int i, const int j)
{
    int cpt=0;
 
    if (i<j)
    {
       if ((tab[i])==(tab[j]))
       {
          cpt++;
          palin(tab,i+1,j-1);
       }
    }
    return(cpt++==j-i);
}
 
 
vous en pensez quoi ?

 

[jfdsdjhfuetppo]--Message édité par massanu--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 18-02-2002 à 22:12:07   

Reply

Marsh Posté le 18-02-2002 à 22:26:19    

Je vois pas trop l'interêt de la récursivité et en plus tu t'en sers pas :D

Reply

Marsh Posté le 18-02-2002 à 22:31:30    

bah c pour ca que je demande
je voit pas comment faire avec la recursivité
 
tu peut maidé ?

Reply

Marsh Posté le 18-02-2002 à 22:37:06    

ouais, je vois pas l'intérêt de la récursivité et en plus, tu fais un retour de "int" dans ta fonction alors que dans ton main(), il n'y pas de pas de "int variable"=palin() !  
Apprend à programmer un peu !

Reply

Marsh Posté le 18-02-2002 à 22:46:36    

apprend a prgrammé ?? :lol: bah c peut etre pour ca que je post ici non ?
 
et je demande pas linteret de la recursivité je demande si quelqu'un sais le faire, c que j'ai pas le choix si je demande
 
pensez juste a l'enoncé

Reply

Marsh Posté le 18-02-2002 à 23:50:43    

Bon, l'idée est simple dans ce programme. Tu aurais fais un peu de caml que tu n'aurais eu aucun mal a écrire ce programme parceque il ne faut pas utiliser for en caml, seulement la récursivitée.
 
Voila l'idée :
 
palin(char * tab, int i, int j)
tab entre i et j est un palindrome ssi :
 
i = j;
ou
tab[i] = tab[j] et palin(tab, i + 1, j - 1)
 
voila ton programme récursif :)

Reply

Marsh Posté le 19-02-2002 à 09:00:51    

merci
et en gros il faudrait ecrire ca comme ca :
 
if (i<j)
{
 if tab[i]=tab[j] return(palin(tab,i+1,j-1))
}
 
c'est ca ?
parceque la je voit pasd du tout meme si je sais que c tout con


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed