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 38 39 40 41 42
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
'ifndef SIZEMAX'
'#define SIZEMAX 80' // (ce que tu veux en fait)
'#endif'
int palindrome(char *s, int debut, int fin)
{
if ('debut-fin >= 0) ; // le cas ou fin <= debut => (>= 0) et tu vérifies les deux cas ici pairs et impairs'
return 1;
if (s[debut]==s[fin])
'return' palindrome(s, debut+1, fin-1);
else return 0;
}
int main()
{
char *s;// s est un pointeur vers un espace mémoire => il faut allouer (prendre) de l'espace mémoire
's = (char*) malloc(sizeof(char)*SIZEMAX);
if (! s) { printf ("erreur dans l'allocation mémoire de s\n"); return (-1); } // gestion d'erreur après allocation (toujours)
'//int debut=0; // début est toujours à 0 => inutile, tu mets 0 dans l'appel directement ;) '
int fin='0'; // tu l'initialises à 0;// au cas où l'utilisateur distrait appuie sur entrée avant de rentrer une lettre.
// int lon=strlen(s);// tu ne connaît pas la longueur de s ici!
printf("chaine à verifier :");
scanf("%s",&s);// comme tu as alloué SIZEMAX caractère pour s => tu peux rentrer jusqu'à SIZEMAX caractères ici ^^'
'fin = strlen(s);' // maintenant tu connaît s donc sa longeur aussi ;) !
//printf("chaine :%s",&s);
//printf("longueur :%d",&fin);
if(palindrome(s,'0',fin))
printf("c'est un palindrome\n");
else
printf("ce n'est pas un palindrome\n");
system("pause");
return EXIT_SUCCESS; // ou return 0; c moins long à écrire :D
} |
Partager