Non, vu qu'on lui passe directement le tableau correspondant. Comme pour la fonction de tri.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Non, les seules fonctions callback, ce sont celles avec "callback" dans le nom.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void RechercherMotTableau(tableauMotsCompact *TMC, char* ch) { unsigned int const idx = HachageCompletMot(ch); return RechercherMotC(ch, n, TMC[idx]) }c'est comme ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 unsigned int HachageCompletMots(char const *mots) { return hash_chaine(mots); }
Le jour est le père du labeur et la nuit est la mère des pensées.
Plus ou moins:
PS: Décidément, tu l'aimes bien, ton "n"... Un jour il faudra m'expliquer d'où tu le sors...
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 MotCompact* RechercherMotCompact(TableauMotsCompacts *TMC, char const* ch) { unsigned int const idx = HachageCompletMot(ch); return RechercherMot(TMC[idx].pMotsCompacts, TMC[idx].nbMotsCompact, ch); } MotCompact const* RechercherMotCompactC(TableauMotsCompacts const* TMC, char const* ch) { unsigned int const idx = HachageCompletMot(ch); return RechercherMotC(TMC[idx].pMotsCompacts, TMC[idx].nbMotsCompact, ch); }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
j'ai encore une erreur de segmentation
je vois pas pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 void GenererLesRegles2fr1en(FILE*pfOut, MotCompact const *pcLeft, MotCompact const *pcRight,MotCompact const pcMots3[],size_t n) { int sortie=0; double imc=0; size_t iLigneLeft = 0; size_t iLigneRight = 0; int const * pcCoordLeft = ligne_GetPremierC(pcLeft, &iLigneLeft); int const * pcCoordRight = ligne_GetPremierC(pcRight, &iLigneRight); while(pcCoordLeft!=NULL && (!sortie) && pcCoordRight!=NULL) { { int ligneRight = *pcCoordRight; while(pcCoordLeft!=NULL && (*pcCoordLeft)>ligneRight) pcCoordLeft = ligne_GetNextC(pcLeft, &iLigneLeft); } if(pcCoordLeft==NULL) break; { int ligneLeft = *pcCoordLeft; while(pcCoordRight!=NULL && (!sortie)&& ligneLeft<(*pcCoordRight)) pcCoordRight = ligne_GetNextC(pcRight, &iLigneRight); } if(pcCoordRight==NULL) break; if(*pcCoordLeft == *pcCoordRight) { char const*Left=GetMotCompact(pcLeft); char const*Right=GetMotCompact(pcRight); fprintf(pfOut,"%s",GetMotCompact(pcLeft)); fprintf(pfOut,"->"); fprintf(pfOut,"%s\n",GetMotCompact(pcRight)); imc=info_mut_cond(pcLeft,pcRight,pcMots3,n); fprintf(pfOut,"IMC = "); sortie=1; pcCoordLeft = ligne_GetNextC(pcLeft, &iLigneLeft); pcCoordRight = ligne_GetNextC(pcRight, &iLigneRight); } } }
une idée?
Merci
Le jour est le père du labeur et la nuit est la mère des pensées.
Bizarre cette erreur, là il affiche bien les 3 regles, mais à la fin il affiche cette erreur de segmentation
Le jour est le père du labeur et la nuit est la mère des pensées.
Pas d'idée, mais commence déjà par indenter correctement...
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 void GenererLesRegles2fr1en(FILE*pfOut, MotCompact const *pcLeft, MotCompact const *pcRight, MotCompact const pcMots3[], size_t n) { int sortie=0; double imc=0; size_t iLigneLeft = 0; size_t iLigneRight = 0; int const * pcCoordLeft = ligne_GetPremierC(pcLeft, &iLigneLeft); int const * pcCoordRight = ligne_GetPremierC(pcRight, &iLigneRight); while(pcCoordLeft!=NULL && (!sortie) && pcCoordRight!=NULL) { { int ligneRight = *pcCoordRight; while(pcCoordLeft!=NULL && (*pcCoordLeft)>ligneRight) pcCoordLeft = ligne_GetNextC(pcLeft, &iLigneLeft); } if(pcCoordLeft==NULL) break; { int ligneLeft = *pcCoordLeft; while(pcCoordRight!=NULL && (!sortie)&& ligneLeft<(*pcCoordRight)) pcCoordRight = ligne_GetNextC(pcRight, &iLigneRight); } if(pcCoordRight==NULL) break; if(*pcCoordLeft == *pcCoordRight) { char const*Left=GetMotCompact(pcLeft); char const*Right=GetMotCompact(pcRight); fprintf(pfOut,"%s",GetMotCompact(pcLeft)); fprintf(pfOut,"->"); fprintf(pfOut,"%s\n",GetMotCompact(pcRight)); imc=info_mut_cond(pcLeft,pcRight,pcMots3,n); fprintf(pfOut,"IMC = "); sortie=1; pcCoordLeft = ligne_GetNextC(pcLeft, &iLigneLeft); pcCoordRight = ligne_GetNextC(pcRight, &iLigneRight); } } }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Oui,
à la fin il s'arrete à ce niveauapres avoir traité tous les séquences
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(pcCoordLeft!=NULL && (*pcCoordLeft)>ligneRight)
Le jour est le père du labeur et la nuit est la mère des pensées.
Je vois pas pourquoi cette erreur! elle me bloque vraiement là.
On a fait comme ca avec les regles 1mot1mot, et ca marchait nikel
Bizarre :s
Le jour est le père du labeur et la nuit est la mère des pensées.
Sans le code qui utilise pcMots3, pas évident de t'aider.
Surtout que là encore, je ne sais pas ce qu'est supposé signifier n...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
le n pour dire TMC[idx].nbMotsCompact
Le jour est le père du labeur et la nuit est la mère des pensées.
Sauf qu'à ma connaissance, quand tu appelles cette fonction, tu n'es pas encore supposée avoir un idx...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mais tu n'es plus supposée appeler RechercherMotC() directement, depuis qu'on a écrit les fonctions RechercherMotCompact() et RechercherMotCompactC().
Cela me semblait évident...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
le probleme persiste encore ..
iciConcernant MotCompact const pcMots3[], je l'utilise pour rechercher le mot EN dedans
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(pcCoordLeft!=NULL && (*pcCoordLeft)>ligneRight)
Le jour est le père du labeur et la nuit est la mère des pensées.
Poste le code complet de GenererLesRegles2fr1en() et info_mut_cond().
Et encore, je ne suis pas sûr de pouvoir t'aider même avec ça...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ok, merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 void GenererLesRegles2fr1en(FILE*pfOut, MotCompact const *pcLeft, MotCompact const *pcRight, MotCompact const pcMots3[]) { int sortie=0; double imc=0; size_t iLigneLeft = 0; size_t iLigneRight = 0; int const * pcCoordLeft = ligne_GetPremierC(pcLeft, &iLigneLeft); int const * pcCoordRight = ligne_GetPremierC(pcRight, &iLigneRight); while(pcCoordLeft!=NULL && (!sortie) && pcCoordRight!=NULL) { { int ligneRight = *pcCoordRight; while(pcCoordLeft!=NULL && (*pcCoordLeft)>ligneRight) pcCoordLeft = ligne_GetNextC(pcLeft, &iLigneLeft); } if(pcCoordLeft==NULL) break; { int ligneLeft = *pcCoordLeft; while(pcCoordRight!=NULL && (!sortie)&& ligneLeft<(*pcCoordRight)) pcCoordRight = ligne_GetNextC(pcRight, &iLigneRight); } if(pcCoordRight==NULL) break; if(*pcCoordLeft == *pcCoordRight) { printf("%s",GetMotCompact(pcLeft)); printf("->"); printf("%s\n",GetMotCompact(pcRight)); imc=info_mut_cond(pcLeft,pcRight,pcMots3); printf("IM = "); printf("%e \n",imc); sortie=1; pcCoordLeft = ligne_GetNextC(pcLeft, &iLigneLeft); pcCoordRight = ligne_GetNextC(pcRight, &iLigneRight); } } }Mais je pense pas que le souci vient de la 2eme fonction, car quand je la supprime, l'erreur persiste encore :s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 double info_mut_cond(MotCompact const *pc, MotCompact const *pc2,MotCompact const pcMot[]) { double IM=0; char const * mot = GetMotCompact(pc); char * mot1 = malloc(sizeof (*mot1) * 256); char * mot2 = malloc(sizeof (*mot2) * 256); double p1,p2,p3,p4,p5; MotCompact const *m1; MotCompact const *m2; sscanf(mot, "%s %s", mot1, mot2); m1= RechercherMotCompactC( pcMot,mot1); m2= RechercherMotCompactC(pcMot,mot2); p1=(NbLignesCommunes(pc,pc2)/((double)596831)); IM=p1; return IM; }
Le jour est le père du labeur et la nuit est la mère des pensées.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager