user2809437
user2809437

Reputation: 492

formatting my output equation

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

Answers (1)

P0W
P0W

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

Related Questions