Palindrome

Fermé
kahinakahi Messages postés 6 Date d'inscription mardi 31 mars 2015 Statut Membre Dernière intervention 2 avril 2015 - Modifié par jipicy le 27/04/2015 à 19:48
 Utilisateur anonyme - 27 avril 2015 à 19:42
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
1 avril 2015 à 21:08
Bonsoir

Je vais regarder.

Amicalement
0
kahinakahi Messages postés 6 Date d'inscription mardi 31 mars 2015 Statut Membre Dernière intervention 2 avril 2015
1 avril 2015 à 21:15
mecii a vous ^^
0
Pourquoi faire un "scanf", si tu dois récupérer les mots depuis un fichier ?
Pourquoi avoir deux fonctions palindrome ?
0
Utilisateur anonyme
1 avril 2015 à 21:14
Une faute :
b==1;
0
Utilisateur anonyme
1 avril 2015 à 21:14
dans l'initalisation
0
Utilisateur anonyme
1 avril 2015 à 21:20
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
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 mardi 31 mars 2015 Statut Membre Dernière intervention 2 avril 2015 > Utilisateur anonyme
1 avril 2015 à 23:45
j'arrive pas !!
0