Probleme [C]

Hamza -  
 ana -
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

  1. grad
     
    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
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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;
    }
    
    0
  3. grad
     
    Je veux corriger le pogramme lami20j :
    Bool Palindrome;
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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)
    0
    1. ana
       
      merce bcp prof
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mp007
     
    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;
    }
    0