Probleme [C]

Fermé
Hamza - 31 déc. 2007 à 19:59
 ana - 20 janv. 2012 à 00:16
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

6 réponses

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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
31 déc. 2007 à 21:09
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
Je veux corriger le pogramme lami20j :
Bool Palindrome;
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
1 janv. 2008 à 11:33
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
merce bcp prof
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui c'est donc pas comme C++
0
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