Bonjour
Voici la fonction add:
polynome add(polynome p1,polynome p2)
{
int i,deg;
polynome p;
deg = maxint(p1.degre,p2.degre);
if(p1.degre == p2.degre)
{
while(p1.coef[deg] == -p2.coef[deg])
{
deg--;
}
}
new_pol(&p,deg);
for(i=p.degre;i>=0;i--)
{
if(i>p1.degre) p.coef[i] = p2.coef[i];
else if(i>p2.degre) p.coef[i] = p1.coef[i];
else p.coef[i] = p1.coef[i]+p2.coef[i];
}
return p;
}
Voici la fonction new_pol:
void new_pol(polynome *p,int deg)
{
int i;
if(deg>0)
{
p->degre = deg;
p->coef = (double*)malloc(deg+1*sizeof(double));
}
else
{
p->degre = 0;
p->coef = (double*)malloc(sizeof(double));
}
}
et la fonction maxint:
int maxint(int x, int y)
{
if(x > y) return x;
else return y;
}
c'est une fois dans le fonction maxint que je me rend compte que le degré et les coefs de p[1] ne sont pplus pris en compte (deg=0, coefs=0X0) alors que ceux de p[0] ne posent pas de problèmes. L'erreur de segmentation survient ensuite lors du calcul des p.coef[i].
Si ça ne vous aide pas, je mettrais tout le code mais c'est un peu long.
Merci


