Aide palindrome en C
Résolu
tonyx01
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
tonyx01 Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
tonyx01 Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Écrire une fonction palindrome qui teste si une chaîne est un palindrome en c
- Fonction si et - Guide
- Ecrire en gras sur whatsapp - Guide
- Teste performance pc - Guide
- Chaine tnt gratuite sur mobile - Guide
- Écrire en majuscule - Guide
2 réponses
Bonjour,
Ce n'est pas void main mais int main. Et du coup on met return 0 à la fin.
Sinon l'algorithme me semble bien compliqué. Lusage dune fonction rendrait lalgo plus simple et plus propre. Grosso modo il faudrait que tu rajoutes un "tant que palindrome==1". Pas besoin de palindrome=1; à chaque itération.
Ce n'est pas void main mais int main. Et du coup on met return 0 à la fin.
Sinon l'algorithme me semble bien compliqué. Lusage dune fonction rendrait lalgo plus simple et plus propre. Grosso modo il faudrait que tu rajoutes un "tant que palindrome==1". Pas besoin de palindrome=1; à chaque itération.
D'abord merci de m'aider. Je suis débutant en C cependant je ne vois pas l'utiliser d'un "tant que" mais pourquoi pas essayer un "switch" ? J'aurai aussi besoin d'aide surtout sur cette partie je n'ai pas tout compris ... >> "for (i = 0, j = strlen (mot) - 1; i <= j; ++i, --j)"
Merci !
Merci !
Un switch ? Un switch ne remplace pas un While... Ou alors explique ton idée davantage.
Ce que je disais sur ton code, c'est que le break n'est pas très élégant. En plus à chaque itération tu fais Palindrome=1; s'il y a égalité des lettres. Il suffirait de rien faire.
Ce qui donnerait :
Une autre variante sans break :
Cdlt,
Ce que je disais sur ton code, c'est que le break n'est pas très élégant. En plus à chaque itération tu fais Palindrome=1; s'il y a égalité des lettres. Il suffirait de rien faire.
Ce qui donnerait :
for (i = 0, j = strlen (mot) - 1; i <= j; ++i, --j){ // la fonction "strlen" va permettre de connaitre la longeur de la chaine if (mot[i] != mot[j]) { Palindrome = 0; break; } }
Une autre variante sans break :
Et enfin, une fonction serait plus propre. Tu mets par exemple ton code "for" dans une fonction int estPalindrome(const char*const mot); qui te renverra 0 si le mot n'est pas un palindrome sinon 1. Ainsi en lisant le nom de la fonction, on sait directement à quoi ça sert. Et ce bout de code pourra être rappelé ultérieurement.
i<-0
j<-Taille(Mot)-1
Palindrome<-1
TantQue i<j ET palindrome=1 Faire
Si Mot[i]<>Mot[j] Alors
Palindrome<-0
FinSi
i<-i+1
j<j-1
FinTantQue
Cdlt,