Palindrome

kahinakahi Messages postés 8 Statut Membre -  
 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

  1. Utilisateur anonyme
     
    Bonsoir

    Je vais regarder.

    Amicalement
    0
    1. kahinakahi Messages postés 8 Statut Membre
       
      mecii a vous ^^
      0
  2. Utilisateur anonyme
     
    Pourquoi faire un "scanf", si tu dois récupérer les mots depuis un fichier ?
    Pourquoi avoir deux fonctions palindrome ?
    0
    1. Utilisateur anonyme
       
      Une faute :
      b==1;
      0
    2. Utilisateur anonyme
       
      dans l'initalisation
      0
    3. 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
    4. 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
    5. kahinakahi Messages postés 8 Statut Membre > Utilisateur anonyme
       
      j'arrive pas !!
      0