Programme palindrome fait pas ce qu'il faut
Résolu
jakbauer222
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Salut mon programme ci-dessous se compile et s'execute sans soucis mais le truc c'est que il ne fonctionne pas comme il faut puisque il prend toute chaine de caractères saisi comme un palindrome.
#include <stdio.h>
#include <string.h>
int palindrome (char chaine [30])
{
int i,j;
int palindrome;
for (i = 0, j = strlen (chaine) - 1; i <= j; ++i, --j){
if (chaine[i] == chaine[j])
palindrome = 1;
else {
palindrome = 0;
break;
}
}
}
int main ()
{
char chaine[30];
printf ("Veuillez entrez un mot : ");
scanf ("%s", chaine);
if ( palindrome )
printf ("%s est un palindrome.\n", chaine);
else
printf ("%s n'est pas un palindrome.\n", chaine);
return 0;
}
#include <stdio.h>
#include <string.h>
int palindrome (char chaine [30])
{
int i,j;
int palindrome;
for (i = 0, j = strlen (chaine) - 1; i <= j; ++i, --j){
if (chaine[i] == chaine[j])
palindrome = 1;
else {
palindrome = 0;
break;
}
}
}
int main ()
{
char chaine[30];
printf ("Veuillez entrez un mot : ");
scanf ("%s", chaine);
if ( palindrome )
printf ("%s est un palindrome.\n", chaine);
else
printf ("%s n'est pas un palindrome.\n", chaine);
return 0;
}
1 réponse
-
Bonjour
Quand tu écrisif ( palindrome )
, tu n'appelles pas la fonction palindrome. Pour l'appeler en lui passant la chaine que tu viens de saisir, il faut faireif (palindrome(chaine))
.
Mais ce n'est pas tout.
Ta fonction palindrome est déclarée comme étant de type int. Elle doit retourner (avec l'instruction return) une valeur int. Il manque unreturn palindrome;
à la fin de ta fonction.
Ce n'est pas une idée très heureuse de donner le même nom à la fonction et à une variable. Peut-être as-tu l'habitude du VB, où on retourne une valeur en l'affectant au nom de la fonction.