⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abcd.cpp

📁 这是一个关于多项式操作的小程序,大家先看看吧,有什么问题我会及时改正
💻 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 + -