Reputation: 492
Trying to print out a polynomail i.e 10x^0+1*x^1 and 9*x^0+1*x^1 However the polynomials print out as
10x^0+1*x^1 +9*x^0+1*x^1, here is my for loop equation
for(int i=0; i<=p->deg; i++) {
if (p->coeffs[i]==0)
break; //dont want to print out any 0 constants
cout << p->coeffs[i] <<" * " << x << "^"<<i << " ";
if (p->coeffs[i]>0 && p->coeefs[i+1]!=0)
cout<< "+";
}
Upvotes: 0
Views: 58
Reputation: 47814
Use:
if (p->coeffs[i]>0 && (i != p->deg) )
cout<< "+";
Also, you shouldn't break
when p->coeffs[i] == 0
, may be other coming coefficients are non-zero.
if (p->coeffs[i]==0)
continue; //dont want to print out any 0 constants
Also, so I think following should work
for(int i=0; i< p->deg; i++) { //Notice only < sign
if (p->coeffs[i]==0)
continue; //dont want to print out any 0 constants
cout << p->coeffs[i] <<" * " << x << "^"<<i << " ";
if ( p->coeffs[i+1] > 0 )
cout<< "+";
}
Upvotes: 1