2013-11-01 52 views
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<< "+"; 

} 

回答

1

用途:

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

而且,你不应该breakp->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<< "+"; 
    } 
+0

@POW我使用的1 2 3和1 -2的测试用例-3,它打印出除了第二多项式细它打印出来为1 * x^0 + -2 * x^1-3x^2 ..不知道如何额外的+打印,因为我的条件状态只有值> 0可以打印添加符号 – user2809437

+0

@ user2809437查看更新回答 – P0W

+0

@POW实际上最终影响-3现在..所以它说+ -3而不是-3 – user2809437