Palindrome

kahinakahi Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
 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
#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

Utilisateur anonyme
 
Bonsoir

Je vais regarder.

Amicalement
0
kahinakahi Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
mecii a vous ^^
0
Utilisateur anonyme
 
Pourquoi faire un "scanf", si tu dois récupérer les mots depuis un fichier ?
Pourquoi avoir deux fonctions palindrome ?
0
Utilisateur anonyme
 
Une faute :
b==1;
0
Utilisateur anonyme
 
dans l'initalisation
0
Utilisateur anonyme
 
tu verras dans le main tu as un void palindrome(char ch[999]) ...

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.
0
Utilisateur anonyme
 
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é :

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à
0
kahinakahi Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
j'arrive pas !!
0