0

polynomail を出力しようとしています、つまり 10x^0+1*x^1 と 9*x^0+1*x^1 しかし、多項式は次のように出力されます

10x^0+1*x^1 +9*x^0+1*x^1、これが for ループの式です

 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<< "+";

}
4

1 に答える 1

1

使用する:

if (p->coeffs[i]>0 && (i != p->deg) )
      cout<< "+";

また、 他の次の係数がゼロでないbreak場合もあります。p->coeffs[i] == 0

 if (p->coeffs[i]==0)
           continue; //dont want to print out any 0 constants

また、次のように動作するはずです

 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<< "+";
    }
于 2013-11-01T06:14:05.957 に答える