erreur de segmentation , probléme de compilation
Bonjour,
:oops:
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 :
Code:
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;
} |
voila dans cette partie de main j’appelle cette fonction :
Code:
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; |