Palindrome
kahinakahi
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
bonjour
svp si vous pouvez m'aider !
foit f un fichier de caracteres contenant des phrases. la phrase est un ensemble de mots séparés par un ou plusieurs blanc. chaque phrase se termine par un point
ecrire le programme permettant de compter le nombre de phrase palindromes et d'afficher la phrase palindrome la plus longues
voila ce que j'ai fais mais le programme ne fonctionne pas et je ne sais pas ou est l'erreur
svp si vous pouvez m'aider !
foit f un fichier de caracteres contenant des phrases. la phrase est un ensemble de mots séparés par un ou plusieurs blanc. chaque phrase se termine par un point
ecrire le programme permettant de compter le nombre de phrase palindromes et d'afficher la phrase palindrome la plus longues
voila ce que j'ai fais mais le programme ne fonctionne pas et je ne sais pas ou est l'erreur
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> void palindrome (char ch[999]) { int i; int j; int b; { i=1; b==1; scanf("%s",ch); j=strlen(ch); while(i<j && b==1); { if(ch[i]=' ' ) { i=i+1; } if(ch[i]=' ') { j=j-1; } if(ch[i]==ch[j]) { i=i+1; j=j-1; } } if(i>=j) { printf('palindrome'); } else { printf('non palindrome'); } } return 1; } int main(int argc, char *argv[]) { FILE*f; char tab[555]; char ch[999]; char X; int i, nb, N; char T[100]; int maxlong; char tabmax[100]; f=fopen("c:\PARTIE_UNE.TXT","w+"); if(f==NULL) { printf("impossible d'ouvrir le fichier PARTIE_UNE.TXT\n"); } else { printf("introduire votre texte qui se termine par un point"); gets(ch); fprintf(f,"%s",ch); } fclose(f); f=fopen("c:\PARTIE_UNE.TXT","r"); X=fgetc(f); nb=0; maxlong=0; while(!feof(f)); { i=0; while(X!='.') { T[i]=X, i=i+1; void palindrome (char ch[999]) { if (b(T)==1) { nb=nb+1; } strcpy(tabmax , T ); if(strlen(T)>maxlong) { maxlong=strlen(T); } } } printf("le nombre de palindrome est %d \n",nb); printf("la chaine la plus longue est %c\n",maxlong); fclose(f); } system ("PAUSE"); return 0; }
2 réponses
Pourquoi faire un "scanf", si tu dois récupérer les mots depuis un fichier ?
Pourquoi avoir deux fonctions palindrome ?
Pourquoi avoir deux fonctions palindrome ?
tu verras dans le main tu as un void palindrome(char ch[999]) ...
tu dois normalement avoir :
le prototype :
le main :
et la fonction
Tu devrais revoir les bases sur openclassroom.
tu dois normalement avoir :
le prototype :
void palindrome(char *ch) ;
le main :
int main(int argc, char *argv[])
{
// appel fonction test du palindrome
palindrome(Tableau de char);
return 0;
}
et la fonction
void palindrome(char *ch)
{
.....
}
Tu devrais revoir les bases sur openclassroom.
Avant d'écrire ton programme en C, pense Algorithme.
que doit faire ton programme:
En gros
Récupérer des mots depuis un fichier
vérifier si c'est un palindrome :
tu as le mot stocké :
comment savoir :
en recopiant à l'envers dans un autre tableau ;)
voilà
que doit faire ton programme:
En gros
Récupérer des mots depuis un fichier
vérifier si c'est un palindrome :
tu as le mot stocké :
ton palindrome dans un tableau:
[S][E][S]/0
comment savoir :
en recopiant à l'envers dans un autre tableau ;)
on retrouve dans l'autre tableau :
[S][E][S]/0
on compare ,
si identique alors
palindrome
compteur incrémenté
sinon pas palindrome
voilà