Bonjour,
je cherche à réaliser un script qui détermine si une chaine est un palindrome, c'est à dire sysmétrique, qui peut se lire de la même façon de gauche à droite ou de droite à gauche. Par exemple, ana, non, rever...
Voici mon code :
je rencontre plusieurs problémes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include <stdio.h> #include <stdlib.h> #include <string.h> int palindrome(char *s, int debut, int fin) { if (fin-debut==0) return 1; if (s[debut]==s[fin]) palindrome(s, debut+1, fin-1); else return 0; } int main() { char *s; int debut=0; int fin=2; //int lon=strlen(s); printf("chaine à verifier :"); scanf("%s",&s); //printf("chaine :%s",&s); //printf("longueur :%d",&fin); if(palindrome(s,debut,fin)) printf("c'est un palindrome\n"); else printf("ce n'est pas un palindrome\n"); system("pause"); return EXIT_SUCCESS; }
- impossible de récupérer correctement la longueur de ma chaine de caractères, c'est pourquoi fin est initialisé à 3 (test de chaines de 3 caractères)
- lorsque je rentre une chaine de 3 caractères qui est un palindrome certaines fois le programme le détecte, d'autres fois non...
Là je ne comprends pas vraiment ce qui se passe...
- Lorsque que la chaine n'est pas un palondrome le programme quitte sans passer par l'affichage qui est prévu dans ce cas
Je suis débutant et après pas mal de temps à essayer de résoudre ces problèmes, j'ai besoin de quelques éclaircissements.
Merci pour vos réponses.
Partager