Bonjour,
j'ai un problème en exécution , "une erreur de segmentation" j'arrive pas à comprendre.
j’extraie d'un fichier1 texte la première ligne qui est composée de 3 nombre et je vérifie avec une fonction calculsup combien de fois ces 3 nombres existent dans chaque ligne d'un fichier 2.
Après je passe à la deuxième ligne de fichier 1...
nbreregles : ligne de fichier 1
transaction : ligne de fichier 2
voila la fonction calculsup :
voila dans cette partie de main j’appelle cette fonction :
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 int calculsup ( string x, string y , string z) {int i=0,sup=0, t1=0,nbre, t2= 0, t3=0, d=0; int transaction; liste_transaction listtest; listtest.allerpremier(); while ( d < transaction) { while (i < nbre-1) { if (x == listtest.courant->premisse[i]) t1 =1; i++; } while (i < nbre-1) { if (y == listtest.courant->premisse[i]) t2 =1; i++; } if (z == listtest.courant->conclusion) t3 =1; if ((t1 == 1) && (t2== 1)&& (t3 ==1)) sup++; d++; listtest.allersuivant(); } return sup; }
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 cout <<"debut try \n" ; list.allerpremier(); int n2=0,tr = 0, sup; while (n2 < nbreregles-1) { int i=0; string x,y,z; int n = list.courant->nbrepremisse ; while (i <= n-2 ) {//cout <<"i = " << i << " " ; //cout << list.courant->premisse[i]<< "\n"; x= list.courant->premisse[i]; cout << "x : "<< x << "\n"; //cout <<"i+1 = " << i+1 << " " ; //cout << list.courant->premisse[i+1]<< "\n"; if (n>1) {y = list.courant->premisse[i+1]; cout << "y : " << y << "\n"; } i++; } //cout << list.courant->conclusion<< "\n"; z= list.courant->conclusion; cout <<"z : "<< z<< "\n"; sup= calculsup (x,y,z); cout << n2 << ":" << sup<< "\n" ; list.allersuivant(); n2++; } return 0;
Partager