Probleme [C]

Bonjour,
au cadre des etudes j'ai commencé a aprendre langage C
j'ai trouvé un exercise dans un livre mais je n'ai aucune idées comment je peux faire le programme
et je demande votre aide SVP
enoncé :
vérifier qu'une suite de caractere constitue un palindrome
( un palindrome peut etre lu de la meme maniere de gauche à droite ou de droite à gauche.
Exemple : ABCDDCBA
j'attent vos reponse
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. je ne sais pas en C mais je vais te donner la méthode générale détaillé comment faire et toi tu fai va faire la traduction en C :

    Algorithme résolution de problème;
    variables ch,sch1,sh2 : chaîne de caractères;
    palindrome : expression booléenne;
    a: naturel;

    Début;

    1-lire(ch);
    2-On va déterminer la longuer de la chaîne de caractères:
    a <- longueur(ch);
    3-on va diviser la chaîne ch en deus sous-chaînes sch1 et sch2 de même longueur:
    sch1 <- Souschaîne(ch,1,a/2);
    sch2 <-Souschaîne(ch,a/2,a/2);
    4-On va inverser shc2:
    sch <- inverse(sch2);
    5-On va comparer sh1 et sch2 pour déterminer si ch est un palindrome:
    Si sch1 = sch2 Alors palindrome <- vrai;
    Sinon palindrome <- faux;
    Finsi;
    6-On va afficher le résultat:
    Si palindrome = vrai Alors écrire('La chaîne est un polydrome.');
    Sinon écrire('La chaîne n'est pas un polyndrome.');
    Finsi;
    Fin.


    J'espère que je t'ai répondu
    1. Modérateur
      Salut,

      essaie
      #include <stdio.h>
      #include<string.h>
      
      int main (int argc, char **argv)
      {
        char mot[20];
        int i, j, palindrome;
        palindrome = 0;
      
        printf ("Entrez un mot : ");
        scanf ("%s", mot);
        for (i = 0, j = strlen (mot) - 1; i <= j; ++i, --j){
            if (mot[i] == mot[j])
              palindrome = 1;
            else {
                palindrome = 0;
                break;
            }
        }
      
        if (palindrome == 1)
          printf ("%s est un palindrome\n", mot);
        else
          printf ("%s est n'est pas un palindrome\n", mot);
      
        return 0;
      }
      
      1. Modérateur
        Salut,

        en C le type bool n'existe pas ;-)

        Une expression vaut 1 si elle est vraie, ou 0 si elle est fausse

        donc au lieu de if (palindrome == 1) j'aurais pu écrire tout simplement
        if (palindrome)
        1. merce bcp prof
      2. kélé le probléme dans mon programme en explikon svp :

        #include<conio.h>
        #include <stdio.h>
        main ( )
        {
        char mot[20];
        int i, j, palindrome=0;

        printf ("Entrez un mot : ");
        gets(mot[i]);

        if (mot[i] == mot[j])
        palindrome = 1;
        else
        palindrome = 0;

        if (palindrome == 1)
        printf ("%s est un palindrome\n", mot);
        else
        printf ("%s est n'est pas un palindrome\n", mot);

        getch;
        }