📄 abcd.cpp
字号:
# include <iostream.h>
struct P
{
float coef;
int expn;
P * next;
};
P * initP();
P * add(P*p1,P * p2);
P * jian(P * p1,P * p2);
P * chen (P* p1,P* p2);
void main ()
{
P * head1,* p1,*p2,* head2,* head3,*p;
p1=initP();
p2=initP();
head1=add(p1,p2);
head2=jian(p1,p2);
head3=chen(p1,p2);
cout<<"多项式相加的结果为:"<<endl;
p=head1;
while(p)
{
cout<<p->coef<<"x"<<p->expn<<" ";
p=p->next;
}
cout<<"多项式相减的结果为:"<<endl;
p=head2;
while(p)
{
cout<<p->coef<<"x"<<p->expn<<" ";
p=p->next;
}
cout<<"多项式相乘的结果为:"<<endl;
p=head3;
while(p)
{
cout<<p->coef<<"x"<<p->expn<<" ";
p=p->next;
}
}
P * initP()
{
int n,i;
float m;
P * head,*p1,*p2;
cout<<"请输入系数和指数:\n";
cin>>m>>n;
p1=new P;
head=new P;
head->expn=0;
head->coef=0;
head->next=NULL;
i=0;
while(n>=0)
{
p1->coef=m;
p1->expn=n;
p1->next=NULL;
if(i==0)
{
head=p1;
i=1;
}
else
{
p2=head;
while(p2->expn>p1->expn && p2->next)
p2=p2->next;
p1->next=p2->next;
p2->next=p1;
}
p1=new P;
cin>>m>>n;
}
delete p1;
cout<<"输入完毕!"<<endl;
return head;
}
P * add(P * p1,P * p2)
{
P * pa,*pb,*head=NULL;
pa=new P;
while(p1 && p2)
{
if(p1->expn>p2->expn)
{
pa=p1;
p1=p1->next;
}
if(p1->expn < p2->expn)
{
pa=p2;
p2=p2->next;
}
if(p1->expn==p2->expn)
{
pa->coef=p1->coef+p2->coef;
pa->expn=p1->expn;
p1=p1->next;
p2=p2->next;
}
if(head==NULL)
{
pb=pa;
head=pa;
}
else
{
pb->next=pa;
pb=pa;
}
}
if(p1!=NULL)
pb->next=p1;
if(p2!=NULL)
pb->next=p2;
delete pa;
return head;
}
P * jian(P * p1,P * p2)
{
P * pa,*pb,*head=NULL;
pa=new P;
while(p1!=NULL && p2!=NULL)
{
if(p1->expn>p2->expn)
{
pa=p1;
p1=p1->next;
}
if(p1->expn<p2->expn)
{
pa->coef=-p2->coef;
pa->expn=p2->expn;
p2=p2->next;
}
if(p1->expn==p2->expn)
{
pa->coef=p1->coef-p2->coef;
pa->expn=p1->expn;
p1=p1->next;
p2=p2->next;
}
if(head==NULL)
{
pb=pa;
head=pa;
}
else
{
pb->next=pa;
pb=pa;
}
}
if(p1)
pb->next=p1;
if(p2)
while(p2)
{
pa->coef=-p2->coef;
pa->expn=p2->expn;
p2=p2->next;
pb->next=pa;
pb=pa;
}
delete pa;
return head;
}
P * chen (P* p1,P* p2)
{
P * head1,* head2=NULL,* pa,* pb;
pa=new P;
while(p1)
{
while(p2)
{
pa->coef=p1->coef*p2->coef;
pa->expn=p1->expn+p2->expn;
p2=p2->next;
if(head2==NULL)
{
pb=pa;
head2=pa;
}
else
{
pb->next=pa;
pb=pa;
}
}
if(head1==NULL)
head1=head2;
else
head1=add(head1,head2);
}
return head1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -