问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
void Insert(Polyn p,Polyn h)
{
if(p->coe==0) delete p;
else
{
Polyn q1,q2;
q1=h;q2=h->next;
while(q2&&p->exp>q2->exp)
{
q1=q2;
q2=q2->next;
}
if(q2&&p->exp==q2->exp)
{
q2->coe+=p->coe;
delete p;
if(!q2->coe)
{
q1->next=q2->next;
delete q2;
}
}
else
{
p->next=q2;
q1->next=p;
}
}
}void PrintPolyn(Polyn P)
{
Polyn q=P->next;
int flag=1;
if(!q)
{
cout<<"0";
cout<<endl;
return;
}
while (q)
{
if(q->coe>0&&flag!=1) cout<<"+";
if(q->coe!=1&&q->coe!=-1)
{
cout<<q->coe;
if(q->exp==1) cout<<"X";
else if(q->exp)
cout<<"X^"<<q->exp;
}
else
{
if(q->coe==1)
{
if(!q->exp) cout<<"1";
else if(q->exp==1) cout<<"X";
else cout<<"X^"<<q->exp;
}
if(q->coe==-1)
{
if(!q->exp) cout<<"-1";
else if(q->exp==1) cout<<"-X";
else cout<<"-X^"<<q->exp;
}
}
q=q->next;
flag++;
}
cout<<endl;
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果