多项式相加求值怎样用C++代码实现

如题所述

多项式相加,也就是合并同类项。
#include <iostream>
using namespace std;
struct list
{
int coef;//系数
int exp;//指数
list *next;
};
list *Creat()//创建带头结点的链表
{
list *h,*r,*s;//h是头结点,存放项的个数,指向第一项
r=h=new list;
h->next=NULL;
while(1)
{
s=new list;
cin>>s->coef>>s->exp;
if(s->coef==0)
break;
if(h->next==NULL)
{
r=s;//r=h->next
h->next=r;
}
else
{
r->next=s;
r=s;
}
}
r->next=NULL;
return h;
}
void Display(list *h)//输出链表
{
list *p;
p=h->next;
cout<<"f(x)=";
while(p)
{
if(p->next!=NULL)
cout<<p->coef<<"X^"<<p->exp<<"+";
else
cout<<p->coef<<"X^"<<p->exp;
p=p->next;
}
cout<<endl;
}
list *Huajian(list *h1)//合并同类项
{
list *p1,*q1,*q2;
for(p1=h1->next;p1;p1=p1->next)
for(q1=p1,q2=q1->next;q2;q1=q2,q2=q2->next)
if(p1->exp==q2->exp)
{
p1->coef+=q2->coef;
q1->next=q2->next;
delete q2;
q2=q1;//q2=q1->next;
}
return h1;
}
list *Multiply(list *h1,list *h2)//实现两个链表相乘
{
list *p1,*p2,*q1;
int c,e;
p1=h1->next;
p2=p1->next;
q1=h2->next;
do
{
c=p1->coef;
e=p1->exp;
while(q1)
{
p1->coef=c*q1->coef;
p1->exp=e+q1->exp;
if(q1->next!=NULL)
{
p1->next=new list;
p1=p1->next;
}
q1=q1->next;
}
q1=h2->next;
p1->next=p2;
p1=p2;
if(p2->next!=NULL)
p2=p2->next;
}while(p2);
h1=Huajian(h1);
return h1;
}
main()
{
list *h1,*h2;
h1=Creat();
Display(h1);
h2=Creat();
Display(h2);
h1=Multiply(h1,h2);
Display(h1);
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

多项式相加求值怎样用C++代码实现
多项式相加,也就是合并同类项。include <iostream> using namespace std;struct list { int coef;\/\/系数 int exp;\/\/指数 list *next;};list *Creat()\/\/创建带头结点的链表 { list *h,*r,*s;\/\/h是头结点,存放项的个数,指向第一项 r=h=new list;h->next=NULL;while(1){ s=new li...

多项式计算器怎样编写?用C++
include<ctype.h>\/*调用字符函数*\/typedef struct term { \/\/项的表示,多项式的项作为LinkList的数据元素 float coef; \/\/系数 int expn; \/\/指数 struct term *next;}term; term* CreatPolyn(term *P,int m) { \/\/ 算法 \/\/ 输入m项的系数和指数,建立表示一元多项式的有序链表P if(m <= ...

用c\/c++写可以实现加减乘除的程序并且数值和运算字符由我自由赋予_百度...
include <cassert> using namespace std;\/\/定义多项式的项类 class term { public:int coef; \/\/多项式系数 int exp; \/\/多项式指数 \/\/初始化项的系数和指数 term( int c=0,int e=0):coef(c),exp(e){} };我有源代码,可以找我。

[源码和文档分享]基于C++实现的多项式计算器系统
实验内容涉及设计并实现一个多项式计算器系统。利用C++的类及运算符重载特性,编写源代码,最终生成可执行程序,以实现对简单多项式的计算操作。实现步骤如下:1. 定义多项式类,包含多项式的系数和指数,并实现运算符重载以支持多项式的加、减、乘、除等基本运算。2. 设计用户接口,允许用户输入多项式表达式...

高分求助C++代码解释
两个一元多项式:A:a1x^n+a2x^(n-1)+...+anx+a(n+1)(a1,a2等等后面的数字表示下标,x^n表示x的n次幂。下同)B:b1x^m+b2x^(m-1)+...+bmx+b(m+1)它们相加,你只需要将指数相同的2项的系数相加,指数不变。比如3x^3+5x^3,它们的指数相同,根据刚刚说的系数相加指数不变结果就...

C++!实现两个多项式的加法减法和乘法运算!简单点就好,不要超过两页的...
bool couvert(string str,vector<float> &numbers,vector<char> &chars,vector<newType> &all)\/\/这里要使用引用 { int len=str.length();bool flag=true;int pos=0;for(int i=0;i<len;i++){ if(str[i]>='0'&&str[i]<='9'||str[i]=='.'){ if (flag){ string substr=str....

多项式求和 c++! 急~~~
include <iostream> using namespace std;void main(){ int n;double f = 0;cout<<"input n:";cin>>n;for (int i = 1;i <= n;i++){ if(i%2 == 0){ f = f - (double)1\/i;} else { f = f + (double)1\/i;} } cout.setf(ios::fixed);cout.precision(2);cout<<...

多项式拟合C++程序
void p (int,int); \/\/对所构造的多项式系数求解的增广矩阵赋值 float f(int,int); \/\/x[i]次幂求和函数 float fy(int ,int ); \/\/x[i]次幂与y[i]乘积求和函数 void G(int); \/\/求解方程函数 float F(float [],int,int ); \/\/供C调用 void suofang(float,int); \/\/离散点...

c++多项式加法 链表
cout<<"\\n两个多项式相加为:\\n";Show(HCxishu,HCzhishu,HCn);system("pause");return 0;} void Input(int X[],int Z[],int *n){ int i,count=0;cout<<"请输入多项式的(系数 指数),(0 0)为结束:\\n";int xishu,zhishu;while(1){ cin>>xishu>>zhishu;if(zhishu==0 && ...

C++ 输出多项式及多项式相乘
void destroy(polynode **P);\/\/销毁多项式 void menu();\/\/命令菜单 int isPut(char ch[]);\/\/菜单 void menu(){ printf("1.输入多项式.\\n""2.多项式相加.\\n""3.多项式相减.\\n""4.多项式相乘.\\n""5.多项式相除.\\n""6.显示多项式.\\n""7.销毁多项式.\\n""8.退出.\\n");} \/\/判断...

相似回答