Quelle est l'instruction manquante d'aprés vs

Fermé
RASOA - 29 oct. 2011 à 08:47
 vulcain - 29 oct. 2011 à 20:16
Bonjour,
Le sujet est de donner un programme en C qui dis si le mot entrer et un palindrome, si c'est pas un palindrome, afficher le premier caractère qui le différent

Un palindrome est un mot qui se lit dans les deux sens de la lecture et qui reste le même.
Exemple : rotor, radar, ete, ......mais ceci est aussi possible pour des phrases palindrome,
Exemple : elu par cette crapule (remarquons que cette phrase reste le même si on le lit de la gauche mais aussi de la droite).

Voici ce que j'ai pu faire, seulement je rencontre un problème .Dans ce programme, si je saisit une phrase palindrome (par exemple elu par cette crapule), mon programme ne donne pas de résultat. Mais si je saisi la même phrase sans espace (eluparcettecrapule) mon programme répond. Voulez vous bien me donnez les instructions qui me permettrons de résoudre ce problème?


#include <stdio.h>
#include <string.h>
#include <conio.h>
main()

{
char t[50],t1[50],temp ;
int i,j,a,v;

printf ("donner un mot:");
scanf("%s",&t);

a = strlen(t);
temp=0;
v=0;
for (i=0;i<a;i++)
{
j=a-1-i;
printf("i= %d",i);

printf("j= %d",j);
printf("\n");
if ( (t[i]!=t[j])&&(i!=j) &&(i<j)) {temp=1; t1[v]=t[i];v++;}

}
if (temp==1) {printf("non palidrome %c", t1[0]); }
if (temp==0) printf(" palidrome");
getch ();
return(0);


}



A voir également:

1 réponse

Bonsoir,

Je propose qu'avant de comparer les caractères, il faut vérifier que le caractère lu courant soit différent du caractère espace ' '. Si l'espace est rencontré il faut le sauter.
0