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;
}
A voir également:
- Programme palindrome fait pas ce qu'il faut
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
1 réponse
Bonjour
Quand tu écris
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 un
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.
Quand tu écris
if ( palindrome ), tu n'appelles pas la fonction palindrome. Pour l'appeler en lui passant la chaine que tu viens de saisir, il faut faire
if (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 un
return 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.
Si tu as envie d'améliorer ton programme, tu peux te passer complètement de la variable palindrome et faire un dès qu'une différence de caractères est trouvée, et un après ta boucle for.