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 :

Palindrome


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut Palindrome
    Bonjour,

    j'ai un probleme

    j'essaye de mettre en place une fonction qui renvoie '' Palindrome" si on introduit un mot palindrome et " Pas palindrome dans le cas contraire.

    j'avoue que tout ce que j'ai fait me parait logique mais ça marche pas pour tout le temps par esemple avec la phrase : elu par cette crapule.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 288
    Par défaut
    Et si tu nous montrais ce que tu as fais ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut Palindrome
    Exusez moi, j'ai oublié d'ajouter le code,

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    // Fonction qui vérifie si un Mot est un Palindrome ou non.
     
    #include <iostream>
    #include <string>
    using namespace std;
     
    bool unpalindrome (string T);
     
    void main ()
     
    {
     
    	string mot;
     
    	cout <<"saisir le mot \n";
    	cin >>mot;
     
    	if (unpalindrome (mot))
    		cout <<"Palindrome!\n";
     
    	else 
    		cout <<" Pas Palindrome!\n";
    }
     
     
    bool unpalindrome (string T) // Notre Fonction
    {
    	int i=0, j=0;
     
    	while (T[j]!='\0') j++;
     
    	j--;
     
     
    	while (i<j && T[i]==T[j])
    	{
     
    		i++;
    		j--;
     
    		if (T[i]==' ') i++;
     
    		else continue;
     
    		if (T[j]==' ') j--;
     
    		else continue;
     
    	}
     
       	if (T[i]==T[j]) return true;
     
        else return false;
    }


    [Balises code rajoutées, posts intermediaires supprimés et topic fusionné... ouf . Aucun problème, mais merci d'y penser à l'avenir ]

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Salut,

    Je n'ai pas vu d'où venait l'erreur, mais je peux déjà te donner quelques conseils :

    - La taille d'un string s'obtient avec chaine.size().
    - Tu peux parcourir ta chaine à l'aide d'iterator (à l'endroit) et de reverse_iterator (à l'envers).
    - Mieux vaut passer ton string à la fonction par référence constante, tu éviteras une recopie inutile.

  5. #5
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Par défaut
    Dans ton exepmle il n'est pas palindrome car tu traite les espaces comme un caractère donc e=e,l=l,u=u mais ( )!=a

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ok, en fait lorsque tu tapes une chaine au clavier, l'espace sera compté comme séparateur et donc si tu rentres "elu par cette crapule", seul "elu" sera dans ta chaine et envoyé à la fonction, ce qui n'est donc pas un palindrome. Utilise std::getline() pour saisir des chaines avec espaces.

    Sinon, voici une version moins lourde (à écrire) qui utilise les facilités du C++ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    bool unpalindrome (string T) // Notre Fonction
    {
        // On supprime les espaces
        T.erase(std::remove(T.begin(), T.end(), ' '), T.end());
     
        // On compare avec la chaîne inverse
        return std::string(T.rbegin(), T.rend()) == T;
    }
    En plus, ta fonction était incorrecte car un std::string n'est pas forcément terminé par un '\0' ; et puis ta manière de sauter les espaces ne me paraît pas correcte non plus, a priori.

  7. #7
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Si tu veux tester :
    http://www.norvig.com/pal2txt.html

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    A part les problèmes signalés par les spécialistes C++, tu as un bug dans l'algo :
    Pour ne pas tenir compte des espaces tu dois faire:
    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
    bool unpalindrome (char * T) // Notre Fonction
    {
       int i=0, j=0;
     
       while (T[j]!='\0') j++;
     
       j--;
     
     
       while (i<j && T[i]==T[j])
       {
     
          i++;
          j--;
     
          if (T[i]==' ') i++;
     
           if (T[j]==' ') j--;
       }
     
       if (T[i]==T[j]) 
            return true;
       else 
             return false;
    }
    PS perso : ce qui m'ennuie dans les solutions C++, c'est qu'on laisse le soin à la machine de résoudre les problèmes qu'on ne sait pas résoudre soi-même :

    Citation Envoyé par Loulou24
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    bool unpalindrome (string T) // Notre Fonction 
    { 
        // On supprime les espaces 
        T.erase(std::remove(T.begin(), T.end(), ' '), T.end()); 
     
        // On compare avec la chaîne inverse 
        return std::string(T.rbegin(), T.rend()) == T; 
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  9. #9
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 288
    Par défaut
    Pas bon si tu as des espaces en début ou fin.

    (Quitte à faire du C -> :s/char \*/const char */)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    bool est_pal(const char * b) 
    {
        const char * e = b + strlen(b);
        while (b < e)
        {
             if      (isspace(*b)) ++b;
             else if (isspace(*e)) --e;
             else if (*b == *e) { ++b; --e;}
             else return false;
        }
        return true;
    }
    (non optimal)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Ca c'est du C
    Sauf qu'il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        const char * e = b + strlen(b)-1;
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  11. #11
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 288
    Par défaut
    Tout à fait. Au temps pour moi.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut Palindrome
    Merci beaucoup pour vous tous, vous m'avez apporté beaucoup de choses.

    Trap D, j'aimerais vous dire que j'ai corrigé le code comme vous me l'avez dit et ça marche encore pas .

  13. #13
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Ben si, chez moi il fonctionne parfaitement.
    Testé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       char *mot= "elu par cette crapule";
       char *mot1= "even in eden i win eden in eve";
       if (unpalindrome (mot))
          printf("%s : Palindrome!\n", mot);
     
       else
          printf("%s : Pas Palindrome!\n", mot);
     
       if (unpalindrome (mot1))
          printf("%s : Palindrome!\n", mot1);
       else
          printf("%s : Pas Palindrome!\n", mot1);
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  14. #14
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Mea culpa
    Effectivement, en y réfléchissant un peu plus, la fonction était buguée à cause des suites d'espaces qui n'y étaient pas traitées. je propose donc cette solution qui garde le même esprit :
    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
    bool unpalindrome (char * T) 
    {
       int i=0, j=0;
     
       while (T[j]!='\0') j++;
     
     
     
       i = -1;
       do 
       {
     
          i++;
          j--;
     
          while (!isalpha(T[i])) i++;
     
          //else continue;
     
          while (j >= 0 && !isalpha(T[j])) j--;
     
          //else continue;
     
       }
       while (i<j && T[i]==T[j]);
     
       if (T[i]==T[j]) return true;
     
        else return false;
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  15. #15
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 288
    Par défaut
    Autant tester j>i plutôt que 0, non ?

    Sinon, c'est un débutant, pitié ne les entretenez pas dans "si (cond == V) retourner vrai sinon retourner faux". On a "retourner cond" qui est très très bien!!!
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  16. #16
    Membre éclairé Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Par défaut
    salut on va voir si il y a des joueurs :
    en recusrsif ça donnerait quoi le palyndrome ?

  17. #17
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    salut on va voir si il y a des joueurs
    Toujours partant

    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
    bool Palindrome_(const char* It1, const char* It2)
    {
        while (*It1 == ' ')
            ++It1;
     
        while (*It2 == ' ')
            --It2;
     
        if (It1 > It2)
            return true;
        else if (*It1 != *It2)
            return false;
        else
            return Palindrome_(It1 + 1, It2 - 1);
    }
     
    bool Palindrome(const char* Mot)
    {
        return Palindrome_(Mot, Mot + strlen(Mot) - 1);
    }
    En C pour ne faire râler personne, mais marche également en remplaçant const char* par std::string::const_iterator.

  18. #18
    Futur Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 4
    Par défaut
    Et pourquoi pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    bool Palindrom (const string s)
    {
         stack<char> ss;
         for(int i = 0;i<s.length();i++)
                ss.push(s[i]);
     
        for(int i =0,i<s.lenght();i++)
       {
             if(ss.top()!=s[i]) return false;
             else sss.pop();
        }
    return true;
    }
    Bon c'est à essayer

  19. #19
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Par défaut dans le méme sujet
    Moi aussi j'ai un mini projet informatique pour la réalisation d'un programme intitulé palindrome .
    IL est éxécutable mais il ne m'affiche pas toute la liste des palindromes

    Sujet du programme :

    La réalisation d’un programme en c qui établie les fonctions suivantes :
    *Le parcour d’un fichier qui existe déjà dans un répertoire sur notre PC.
    *La recherche de tous les palindromes qui existe dans ce fichier.
    *La création d’une liste chainee qui va contenir tous les palindromes.
    *Chaque élément de cette liste contient le palindrome, le nombre d’occurrences de chaque palindrome sur chaque ligne en forme de tableau.
    *Le teste si le palindrome qu’on a trouvé existe déjà dans la liste ou pas
    Si oui on va juste incrémenter le nombre d’occurrences de ce palindrome
    Si non on va ajouter le palindrome dans notre liste .

    UN plus dans le programme :

    La création d’une interface graphique avec la bibliothèque SDL sur le programme dev c .
    voila mon code
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    #include <stdlib.h>
     
    /*Definition de la liste */
     
          typedef struct pall
          {
                  char chaine[30];
                  int t[100];
                  struct pall  *prev;
                  struct pall  *next;
                  }
          Pall;
     
     
          typedef struct 
                  {
                          Pall *first;
                          Pall *last;        
                          int  Nbre ;
                          }
          liste_Pall;
     
     
           /*Initialisation de la liste */
     
            liste_Pall *initialiser_liste()
             {liste_Pall *L;
                       printf("Intialisation de la liste chainee \n");
                        L = (liste_Pall *) malloc (sizeof(liste_Pall));
                        L->first=NULL;
                        L->last=NULL;
                        L->Nbre=0;
     
                        return(L);
     
             }  
     
    /* Procedure creation fichier */
    void Creer(FILE **fp)
    {
    char f[30];
    printf("Fichier:");
    scanf("%s",f);
    *fp=fopen(f,"r") ;
     
    if (*fp==NULL )
    {printf("Probleme ouverture!!!");exit(EXIT_FAILURE); }
     
    }
    /* fonction palindrome */
    int palindrome (char *s)
    {int k,j,l;
    l=strlen(s);
     
    for(k=0,j=l-1;k<j;k++,j--)
    {if(s[k]!=s[j])
    return 0;}
    return 1;
     
    }        
     
      /* recherche un palindrome dans la liste */
     
     Pall* Rechercher(char s[30],liste_Pall *L)
     {     Pall *p ;
     
            p=L->first;
            while(p!= NULL && strcmp(p->chaine,s)!=0)
            {p = p->next;printf("%s",p->chaine);}
     
            return p;
     } 
     
     
    /*Ajouter le palindrome dans la liste */
       liste_Pall * Ajout_Pall (liste_Pall *l ,char s[30] ,int ligne)
       {int i;
       Pall *nouv = (Pall *)malloc(sizeof(Pall));
     
       if(!nouv) exit(EXIT_FAILURE);
      for(i=1;i<=100;i++) 
      {nouv->t[i] =0;}
     strcpy(nouv->chaine,s);
     nouv->t[ligne] = 1;
       if (l->Nbre==0)
    {   nouv->next = NULL;
        nouv->prev = NULL;
        l->last = nouv;
        l->first = nouv;
        l->Nbre++;
    }
    else
    {
       nouv->prev = l->first;
       nouv->next = NULL; 
       l->first=nouv;
       l->Nbre++;
    }
     return(l);  }
     
     /* Affichage de la liste de palindrome */
     
     
     void affiche(liste_Pall *L)
    { 
      Pall *courant;
     
      courant = L->first; /* point du départ le 1er élément */
      printf("les mots palaindrome dans la liste sont :\n ");
     
      while(courant != NULL)
      {
        printf("%s\n",courant->chaine);
        courant = courant->next;
      }
     
    }
     
     
    int  main()
    {
        FILE  *fp=NULL;
        char s[30];
     
     
    int i,p;
    int c;
    Pall *q;liste_Pall *L;
    Creer(&fp) ;
    i=1;
    L=initialiser_liste();
     
    while((c=fgetc(fp))!=EOF)
    {  
          if (c == '\n') {i=i+1;}
     
          fscanf(fp,"%s",s);
     
          p=palindrome(s);
     
     
          /* Affichage du résultat */
          if(p==1)
          { 
          printf("Le mot %s est palindrome ",s);
          q=Rechercher(s,L);
          if (q==NULL)
          {   printf("n'existe pas dans la liste on va l'ajouter\n");
              L=Ajout_Pall (L,s,i);
          }
          else
          {printf("existe  :%d fois  \n",q->t[i]+1);}
     
          }
     
    }
    affiche(L);
    getch();
    fclose(fp);
    return(0);
     
    }

Discussions similaires

  1. nombre palindrome
    Par nemesis00 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/04/2006, 10h50
  2. Palindrome
    Par casafa dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 02/12/2005, 07h33
  3. Tester si un mot est palindrome
    Par imeys dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2005, 15h03
  4. palindrome
    Par devdébuto dans le forum C
    Réponses: 6
    Dernier message: 17/11/2005, 22h53
  5. [Debutant] Programme de test de palindrome
    Par lala_ dans le forum Assembleur
    Réponses: 5
    Dernier message: 13/02/2005, 15h48

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