Tester un mot c'est un palindrome ou non

Résolu/Fermé
Sasan202 Messages postés 15 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 15 février 2013 - 17 janv. 2013 à 02:42
moulaimohemmedali Messages postés 1 Date d'inscription lundi 23 novembre 2015 Statut Membre Dernière intervention 23 novembre 2015 - 23 nov. 2015 à 15:56
j'essaye d'écrire un programme qui permet de tester si un mot est un palindrome ou non
Mais ça ne fonctionne pas correctement :(
Un palindrome est une chaine de caractères qui se lit de gauche à droit ou de droit à gauche et donne le même résultat
Exemple : « radar », « laval ».
C'est mon code en C++ je ne sais pas pourquoi


#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
int n,i,k,m;
char mot[256] ;

printf("entrer le mot a verifier SVP : ");
scanf("%s", mot);
n=strlen(mot);
printf("\n\n%d",n);
i=1;
while(i<= n/2){
if (mot[i] != mot[n-(i+1)]){
k=0;}
else{
k=1;}
i++;}
if (m=0){
printf("\n\nCe n'est pas un palindrome");}
else{
printf("\n\nC'est un palindrome");}
getch();
}


Merciii d'avance :)

3 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
17 janv. 2013 à 10:15
Bonjour Sasan202,

Dans la boucle "While", tu as une erreur ..

Tu dis : Si mot[Indice] est différent de ...
ALORS k=0 SINON k=1

Admettons le mot bwwv

Passage n° 1 : compare b et v, mauvais, donc k=0,
Passage n° 2 : compare w et w, mauvais, donc k=1,

On sort de la boucle "While" avec k=1 .. donc, c'est un palindrome
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

En fait, dès qu'il y a une non-concordance entre deux caractères, il faut sortir de la boucle ..
Ou bien, s'arranger pour que le k garde la valeur 0 jusqu'à la sortie de la boucle !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2