Accueil > Forum > > > > programme ne marcge pas correctement
programme ne marcge pas correctement
lundi 26 avril 2010 à 02:57:24 |
programme ne marcge pas correctement

hedi2tun
|
salut à tous!
je réalise un programme en c qui cherche des mots palindromes comme non laval .... j'ai réussi a trouver tous ces palindromes mes parcontre je n'arrive pas à déterminer leurs positions (nombre de lignes )...
alors je vous prie de m'aider !!!
le code de mon programme et le suivant :
Code C/C++ : #include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
/* element */
typedef struct element
{ char palindrome[20];
int ligne[500];
int nombre;
struct element *suivant;
}elem;
/* liste */
typedef struct liste
{ int nbre;
elem *premier ;
}liste;
/* initialisation */
liste init_liste(liste l)
{ int i;
liste *L;
elem *p;
L=(liste*) malloc(sizeof(liste));
if(L )
{ p=(elem*) malloc(sizeof(elem));
if(p)
{
p->suivant=NULL;
for(i=0;i<500;i++)
{p->ligne[i]=0;}
p->nombre=0;
strcpy(p->palindrome," ");
l.premier=p;
l.nbre=0;
}
else
{
fprintf (stderr, "Memoire insufisante\n");
exit (EXIT_FAILURE);
}
}
else
{
fprintf (stderr, "Memoire insufisante\n");
exit (EXIT_FAILURE);
}
return(l);
}
liste ajout_elem(liste l,char t[20], int li)
{ elem *p,*r,*q;
int i;
q=(elem*) malloc(sizeof(elem));
p=(elem*) malloc(sizeof(elem));
r=(elem*) malloc(sizeof(elem));
for(i=0;i<500;i++)
{p->ligne[i]=0;}
p->nombre=0;
p->suivant=NULL;
strcpy(p->palindrome," ");
for(i=0;i<500;i++)
{r->ligne[i]=0;}
r->nombre=0;
r->suivant=NULL;
strcpy(r->palindrome," ");
for(i=0;i<500;i++)
{q->ligne[i]=0;}
q->nombre=0;
q->suivant=NULL;
strcpy(q->palindrome," ");
if(p==NULL)
{printf("\n pas assez de memoire");
return(l);
}
else
{ if (l.nbre==0)
{ strcpy(p->palindrome,t);
p->ligne[li]=1;
p->nombre=1;
p->suivant=NULL;
l.premier=p;
l.nbre++;
return(l);
}
else{
p=l.premier;
while(p!=NULL){
if((strcmp(p->palindrome,t))==0 )
{ p->nombre++;
p->ligne[li]++;
return(l);
}
r=p;
p=p->suivant;
}
if(p==NULL)
{
strcpy(q->palindrome,t);
q->ligne[li]=1;
q->nombre=1;
q->suivant=NULL;
r->suivant=q;
l.nbre++;
return(l);
}
}
}
}
void affiche_liste(liste l)
{ elem *p,*q;
int i,k;
k=0;
if(l.nbre==0)
{printf(" \n liste vide");
return ;
}
else
{
p=l.premier;
printf("\n les palindromes present dans ce fichier sont");
while(p!=NULL)
{printf("\n\t\t\t\t %s ",p->palindrome);
p=p->suivant;}
printf("\n il sont en nombre de %d ",l.nbre);
p=l.premier;
while(p!=NULL)
{printf("\n\nle palindrome %s est present %d fois",p->palindrome,p->nombre);
for(i=0;i<500;i++)
{ if(p->ligne[i]!=0)
{
printf("\n %d fois dans la ligne %d ", p->ligne[i],i);
k=k+p->ligne[i];}
}
p=p->suivant;
}
}
printf("\n le nombre d'occurence total se tous les palindromes est %d",k);
}
int isPalindrom(char str[])
{
int l = 0;
int r = strlen(str)-1;
if(r<=1)
{return 0;}
else{
while (l<r)
{
if (str[l] != str[r])
return 0;
l++;
r--;
}
return 1;
}
}
/* nombre de lignes totales*/
int nb_lignes_totales(FILE *p)
{
int n=0, c;
while ((c = fgetc(p)) != EOF)
{
if (c == '\n')
{
n++;
}
}
return n;
}
int main()
{
char nom_fichier[50],T[20],tab[20];
int n=1, c;
liste l;
int i,j,k,li;
FILE *p;
l=init_liste(l);
printf("\n donner le nom de fichier à tester ");
scanf("%s",& nom_fichier);
l=init_liste(l);
p= fopen(nom_fichier,"r");
if (p == NULL)
{printf("\n le fichier ne peut pas etre lu: ");
exit(-1);}
else
{ k=nb_lignes_totales(p);
if(k==0)
{printf("\n le fiçchier est vide ");}
else
{printf("\n le fichier contient %d lignes", k+1);
}
}
fclose(p);
p= fopen(nom_fichier,"r");
while(!feof(p))
{
fscanf (p,"%s", &T);
c = (fgetc(p));
if (c == '\n')
{
n++;
}
if (isPalindrom(T))
{ strcpy(tab,T);
l=ajout_elem(l,T, n);
}
}
fclose(p);
affiche_liste(l);
getch();
return 1 ;
}
merci de m'indiquer mes erreurs !
|
|
Cette discussion est classée dans : nombre, int, liste, elem, if
Répondre à ce message
Sujets en rapport avec ce message
classes imbriquées accès aux infos [ par simo035 ]
Bonsoir tous le monde ! Problème de débutant, merci pour vôtre aide. J'ai une classe Liste avec deux classe imbriquées Element et Place. Disons par e
probleme avec la fonction glreadpixels [ par sousoi ]
je trouve que on peut implimenter l'algo de z buffer avec opengl et recuperer les donnee avec la fonction de opengl "glreadpixels" mais je trouve un
interpreteur sql [ par cobutanisme154 ]
bonjours tout le monde, j'ai cherché sur ce site et sur google ,mais je n'arrive pas à trouver un interpréteur sql écrit en c.Quand je dis un interpré
ajout d'un element à la fin d'une liste chainée [ par beatkof ]
bonsoir je voudrai faire une fonction qui ajout un element à la fion d'une liste chainée et je n'y arrive pas voila ma fonction: #include #include s
classe matrice [ par monphp ]
slt tt le monde, je suis entrain de réaliser un projet concernant le polymorphisme des matrices et des vecteurs. jé realisé alors une matricecaree qui
erreur c [ par maha1987 ]
Bonjour tout le monde, j'ai ce programme C qui prend des caractères et doit afficher si la chaîne constituée par ces caractères est valide(constituée
FONCTION SUR C++ [ par debutanteencplusplus ]
SALUT !!! je veux faire une fonction qui teste si un nombre n est ondulant . voila ce que j'ai fait ,mais ça marche pas [color=gray]int est_ondulant
Le multithreading et variable générales [ par vbfrance102 ]
salut si qlq'un peut m'aider je suis débutant en c et j'essaye de faire une petit jeu qui a 1 threads sous forme de boucle infinie et je veux qu'il m
lecture d'un fichier, vitesse d'execution [ par vercd7am ]
Bonjour, voulant lire un gros fichier, il y a une question que je me pose pour ne pas faire ramer mon ordinateur et avoir la reponse la plus rapide p
Problème générateur de grille de sudoku en C [ par Dovah ]
Bonjour, je suis débutant en programmation, et pour m'entraîner j'ai décidé de créer un programme qui génère aléatoirement une grille de sudoku en C
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|