设计一个一元多项式简单的计算器(数据结构C语言版)急

作者&投稿:店帜 (若有异议请与网页底部的电邮联系)
一元多项式简单的计算器C语言 数据结构 急!!!!!!(高分悬赏)~

大一上数据结构的时候写的:

#include
#include
#include
#include

typedef struct Item{
double coef;
int expn;
struct Item *next;
}Item,*Polyn;

#define CreateItem(p) p=(Item *)malloc(sizeof(Item));
#define DeleteItem(p) free((void *)p);
/************************************************************/
/*判断选择函数
*/
/************************************************************/
int Select(char *str)

{ char ch;
printf("%s
",str);
printf("Input Y or N:");
do{ ch=getch();
}while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n');
printf("
");
if(ch=='Y'||ch=='y') return(1);
else return(0);
}


/************************************************************/
/*插入位置定位函数 */
/**************************************************************/
int InsertLocate(Polyn h,int expn,Item **p)

{ Item *pre,*q;
pre=h;
q=h->next;
while(q&&q->expn<expn)


{ pre=q;
q=q->next;
}


if(!q)

{ *p=pre;
return(1);
}


else if(q->expn==expn)

{ *p=q;
return(0);
}


else
{ *p=pre;
return(-1);

}

}
/************************************************************/
/*插入结点函数
*/
/************************************************************/
void insert(Item *pre,Item *p)
{

p->next=pre->next;
pre->next=p;
}


/************************************************************/
/*输入多项式 */
/************************************************************/
Polyn Input(void)
{


double coef;
int expn,flag;
Item *h,*p,*q,*pp;
CreateItem(h);//产生头结点
h->next=NULL;
printf("input coef and expn(if end ,expn=-1)
");
while(1)
{


scanf("%lf%d",&coef,&expn); //输入多项式的系数和指数
if(expn==-1) break; //若指数为-1,表示输入结束
if(InsertLocate(h,expn,&pp))//返回值非 0表示插入新结点

{ CreateItem(p);
p->coef=coef;
p->expn=expn;
insert(pp,p);
}


else if(Select("has the same expn,Replace older value?"))
pp->coef=coef; //指数相同,替换系数


}
return h;
}


/************************************************************/
/*撤消多项式 */
/************************************************************/
void Destroy(Polyn h)
{


Item *p=h,*q;
while(p!=NULL)




{
q=p;
p=p->next;
DeleteItem(q);
}


}
/************************************************************/
/*输出多项式 */
/************************************************************/
void Output(Polyn h,char *title)
{

int flag=1;
Item *p=h->next;
printf("%s=",title);
while(p)
{ if(flag) //表示是否是多项式的第一项


{ flag=0;
if(p->expn==0) printf("%.2lf",p->coef);
else printf("%.2lfx^%d",p->coef,p->expn);
}


else

{ if(p->coef>0) printf("+");
if(p->expn==0) printf("%.2lf",p->coef);
else printf("%.2lfx^%d",p->coef,p->expn);
}


p=p->next;

}
printf("
");
}


/************************************************************/
/*判断两个多项式项的关系 */
/************************************************************/
int ItemComp(Item x,Item y)
{ if(x.expn<y.expn)


return(-1);
else if(x.expn==y.expn)


return(0);
else return(1);
}


/************************************************************/
/*两多项式多项式相加
*/
/************************************************************/
Polyn AddPolyn(Polyn h1,Polyn h2)

{
Item *head,*last,*pa=h1->next,*pb=h2->next,*s,*s0;
double coef;
CreateItem(head);
last=head;
head->next=NULL;
while(pa && pb)
{
switch(ItemComp(*pa,*pb))
{
case -1:
CreateItem(s);
*s=*pa;
pa=pa->next;
s->next=NULL;
break;
case 0:
coef=pa->coef+pb->coef;
if(coef!=0.0)
{
CreateItem(s);
s->coef=coef;
s->expn=pa->expn;
s->next=NULL;
}
pa=pa->next;
pb=pb->next;
break;
case 1:
CreateItem(s);
*s=*pb;
pb=pb->next;
s->next=NULL;
break;
}
if(head->next==NULL)
{
insert(head,s);
last=s;
}
else
{
insert(last,s);
last=s;
}

}
// last->next=pa?pa:pb;

//实现两个多项式相加运算的代码
//(由学生独立完成)

last->next=NULL;
return head;
}


/************************************************************/
/*两多项式多项式相减
*/
/************************************************************/
Polyn SubtractPolyn(Polyn h1,Polyn h2)
{ int flag;


Item *head,*last,*pa=h1->next,*pb=h2->next,*s,*s0;
double coef;
int a,b;
CreateItem(head);
last=head;
while(pa&&pb)
{
a=pa->expn;
b=pb->expn;
switch(ItemComp(*pa,*pb))
{
case -1:
CreateItem(s);
*s=*pa;
/* //insert(s,s0);
* //s=s->next;
*/
pa=pa->next;
s->next=NULL;
break;
case 0:
coef=pa->coef-pb->coef;

if(coef!=0.0)
{
CreateItem(s);
s->coef=coef;
s->expn=pa->expn;
/* //insert(s,s0); */
s->next=NULL;
/* //s=s->next; */
}
pa=pa->next;
pb=pb->next;
break;
case 1:
CreateItem(s);
*s=*pb;
s->coef=-1*s->coef;
/* //insert(s,s0);
* //s=s->next;
*/
pb=pb->next;
s->next=NULL;
break;
}
if(head->next==NULL)
{
insert(head,s);
last=s;
}
else
{
insert(last,s);
last=s;
}
}
if(pa)
last->next=pa;
else
{
last->next=pb;
while(pb)
{
pb->coef*=-1;
pb=pb->next;
}
}

//实现两个多项式相减运算的代码
//(由学生独立完成)

last->next=NULL;
return head;
}


/************************************************************/
/*两多项式多项式相乘
*/
/************************************************************/
Polyn MultPolyn(Polyn h1,Polyn h2) //两个多项式相乘
{ int item,expn;


Item *head,*pa,*pb=h2->next,*s,*pp;
double coef;
CreateItem(head);
head->next=NULL;
CreateItem(pp);
pp->next=NULL;
for(;pb;pb=pb->next)
{
for(pa=h1->next;pa;pa=pa->next)
{
CreateItem(s);
pp->next=s;
s->coef=pa->coef*pb->coef;
s->expn=pa->expn+pb->expn;
s->next=NULL;
head=AddPolyn(pp,head);

}
}

//实现两个多项式相乘运算的代码
//(由学生独立完成)

\f


return head;

}
/************************************************************/
/*菜单选择 */
/************************************************************/
int menu(void)

{ int num;
//clrscr();
printf("%20c1--create P(x)
",' ');
printf("%20c2--create Q(x)
",' ');
printf("%20c3--p(x)+Q(x)
",' ');
printf("%20c4--P(x)-Q(x)
",' ');
printf("%20c5--p(x)*Q(x)
",' ');
printf("%20c6--print P(x)
",' ');
printf("%20c7--print Q(x)
",' ');
printf("%20c8--print P(x)+Q(x)
",' ');
printf("%20c9--print P(x)-Q(x)
",' ');
printf("%20c10--print P(x)*Q(x)
",' ');
printf("%20c11--Quit
",' ');
printf(" please select 1,2,3,4,5,6,7,8,9,10,11:");


do{
scanf("%d",&num);
}while(num11);


return(num);

}
/************************************************************/
/*判断多项式是否存在 */
/************************************************************/
int PolynNotEmpty(Polyn h,char *p)

{ if(h==NULL)

{ printf("%s is not exist!
",p);
getchar();
return(0);
}


else return(1);

}
/************************************************************/
/*主函数 */
/************************************************************/
void main()
{ int num;

Polyn h1=NULL; //p(x)
Polyn h2=NULL; //Q(x)
Polyn h3=NULL; //P(x)+Q(x)
Polyn h4=NULL; //P(x)-Q(x)
Polyn h5=NULL; //P(x)*Q(x)
while(1)

{ num=menu();
getchar();
switch(num)


{
case 1: //输入第一个多项式,若多项式存在,首先撤消然后再输入
if(h1!=NULL)
{ if(Select("P(x) is not Empty,Create P(x) again?"))

{ Destroy(h1);
h1=Input();
}


}
else h1=Input();
break;
case 2: //输入第二个多项式,若多项式存在,首先撤消然后再输入
if(h2!=NULL)
{ if(Select("Q(x) is not Empty,Create Q(x) again?"))

{ Destroy(h2);
h2=Input();
}


}
else h2=Input();
break;


case 3: //两多项式相加
if(PolynNotEmpty(h1,"p(x)")&&PolynNotEmpty(h2,"Q(X)"))
{h3=AddPolyn(h1,h2);
Output(h3,"P(x)+Q(X)");
printf("P(x)+Q(x) has finished!
");
getchar();
}
break;
case 4: //两多项式相减
if(PolynNotEmpty(h1,"p(x)")&&PolynNotEmpty(h2,"Q(X)"))
{ h4=SubtractPolyn(h1,h2);
Output(h4,"Px)-Q(x)");

printf("P(x)-Q(x) has finished!
");
getchar();
}
break;


case 5: //两多项式相乘

if(PolynNotEmpty(h1,"p(x)")&&PolynNotEmpty(h2,"Q(X)"))
{ h5=MultPolyn(h1,h2);

Output(h5,"P(x)*Q(x)");
printf("P(x)*Q(x) has finished!
");
getchar();


}
break;
case 6: //显示第一个多项式
if(PolynNotEmpty(h1,"p(x)"))


{ Output(h1,"P(x)");
getchar();
}


break;
case 7: //显示第二个多项式
if(PolynNotEmpty(h2,"Q(x)"))

{ Output(h2,"Q(x)");
getchar();
}
break;


case 8: //显示相加结果多项式
if(PolynNotEmpty(h3,"P(x)+Q(x)"))

{ Output(h3,"P(x)+Q(x)");
getchar();
}
break;


case 9: //显示相减结果多项式
if(PolynNotEmpty(h4,"P(x)-Q(x)"))

{ Output(h3,"P(x)-Q(x)");
getchar();
}
break;


case 10: //显示相乘结果多项式
if(PolynNotEmpty(h5,"P(x)*Q(x)"))

{ Output(h3,"P(x)*Q(x)");
getchar();
}
break;


case 11: //结束程序运行。结束前应先撤消已存在的多项式
if(h1!=NULL) Destroy(h1);
if(h2!=NULL) Destroy(h2);
if(h3!=NULL) Destroy(h3);
if(h4!=NULL) Destroy(h4);
if(h4!=NULL) Destroy(h4);

\f
if(h4!=NULL) Destroy(h5);

}
if(num==11) break;
}
}

#include
#include

typedef struct Node
{
int data;
struct Node *next;
}Node;//链表结点

typedef struct LinkList//定义链表数据类型
{
Node *head;//表头结点
void PrintMform()//输出多项式
{
Node *p=head->next;
int exp = head->data-1;
while(p!=NULL)
{
if(exp==head->data-1)
printf("%dX^%d",p->data,exp);
else
{
if(p->data>0)
printf("+%dX^%d",p->data,exp);
if(p->data==0)
printf("+0");
if(p->data<
0)
printf("%dX^%d",p->data,exp);
}
exp--;
p=p->next;
}
printf("
");
}
void CreateByInput(int length)//通过输入元素建立链表
{
head=(Node *)malloc(sizeof(Node));
head->data=0;//表头节点存储链表真实长度
head->next=NULL;
int i,temp;
Node *p,*cur = head;
for(i=1;i<=length;i++)
{
printf("structing LinkList,Please input the value:
");
scanf("%d",&temp);
p = (Node *)malloc(sizeof(Node));
p->data=temp;
p->next=cur->next;
cur->next=p;
cur = cur->next;
head->data++;

}
}
}LinkList;

void main()
{
LinkList L1,L2;
int length;//就是多项式的项数
printf("Please input the first LinkList's length:
");
scanf("%d",&length);
printf("begin to struct the first LinkList
");//开始构造第一个多项式
L1.CreateByInput(length);
printf("begin to struct the second LinkList
");//开始构造第二个多项式
L2.CreateByInput(length);
printf("the first duoxiangshi is:
");
L1.PrintMform();//输出第一个多项式
printf("the second duoxiangshi is:
");
L2.PrintMform();//输出第二个多项式
Node *p = L1.head->next;/////////////////从这里开始
Node *q = L2.head->next;//是计算多项式L1-L2,结果存入L1
while(p!=NULL)
{
p->data-=q->data;
p=p->next;
q=q->next;
}/////////////////////////////////////到这里结束
printf("the substract is:
");
L1.PrintMform();
system("pause");
}

除以上功能外,还有乘法和除法的计算和导数计算呢。
这是我以前做的数据结构课程设计。希望能帮上你的忙。

#include<stdio.h>
#include<malloc.h>
typedef struct Polynomial{
float coef;
int expn;
struct Polynomial *next;
}*Polyn,Polynomial; //Polyn为结点指针类型
void Insert(Polyn p,Polyn h){
if(p->coef==0) free(p); //系数为0的话释放结点
else{
Polyn q1,q2;
q1=h;q2=h->next;
while(q2&&p->expn<q2->expn){ //查找插入位置
q1=q2;
q2=q2->next;
}
if(q2&&p->expn==q2->expn){ //将指数相同相合并
q2->coef+=p->coef;
free(p);
if(!q2->coef){ //系数为0的话释放结点
q1->next=q2->next;
free(q2);
}
}
else{ //指数为新时将结点插入
p->next=q2;
q1->next=p;
}
}
}//Insert
Polyn CreatePolyn(Polyn head,int m){//建立一个头指针为head、项数为m的一元多项式
int i;
Polyn p;
p=head=(Polyn)malloc(sizeof(struct Polynomial));
head->next=NULL;
for(i=0;i<m;i++){
p=(Polyn)malloc(sizeof(struct Polynomial));//建立新结点以接收数据
printf("请输入第%d项的系数与指数:",i+1);
scanf("%f %d",&p->coef,&p->expn);
Insert(p,head); //调用Insert函数插入结点
}
return head;
}//CreatePolyn
void DestroyPolyn(Polyn p){//销毁多项式p
Polyn q1,q2;
q1=p->next;
q2=q1->next;
while(q1->next){
free(q1);
q1=q2;//指针后移
q2=q2->next;
}
}
void PrintPolyn(Polyn P){
Polyn q=P->next;
int flag=1;//项数计数器
if(!q) { //若多项式为空,输出0
putchar('0');
printf("\n");
return;
}
while (q){
if(q->coef>0&&flag!=1) putchar('+'); //系数大于0且不是第一项
if(q->coef!=1&&q->coef!=-1){//系数非1或-1的普通情况
printf("%g",q->coef);
if(q->expn==1) putchar('X');
else if(q->expn) printf("X^%d",q->expn);
}
else{
if(q->coef==1){
if(!q->expn) putchar('1');
else if(q->expn==1) putchar('X');
else printf("X^%d",q->expn);
}
if(q->coef==-1){
if(!q->expn) printf("-1");
else if(q->expn==1) printf("-X");
else printf("-X^%d",q->expn);
}
}
q=q->next;
flag++;
}//while
printf("\n");
}//PrintPolyn
int compare(Polyn a,Polyn b){
if(a&&b){
if(!b||a->expn>b->expn) return 1;
else if(!a||a->expn<b->expn) return -1;
else return 0;
}
else if(!a&&b) return -1;//a多项式已空,但b多项式非空
else return 1;//b多项式已空,但a多项式非空
}//compare
Polyn AddPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针
Polyn qa=pa->next;
Polyn qb=pb->next;
Polyn headc,hc,qc;
hc=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点
hc->next=NULL;
headc=hc;
while(qa||qb){
qc=(Polyn)malloc(sizeof(struct Polynomial));
switch(compare(qa,qb)){
case 1:
{
qc->coef=qa->coef;
qc->expn=qa->expn;
qa=qa->next;
break;
}
case 0:
{
qc->coef=qa->coef+qb->coef;
qc->expn=qa->expn;
qa=qa->next;
qb=qb->next;
break;
}
case -1:
{
qc->coef=qb->coef;
qc->expn=qb->expn;
qb=qb->next;
break;
}
}//switch
if(qc->coef!=0){
qc->next=hc->next;
hc->next=qc;
hc=qc;
}
else free(qc);//当相加系数为0时,释放该结点
}//while
return headc;
}//AddPolyn
Polyn SubtractPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针
Polyn h=pb;
Polyn p=pb->next;
Polyn pd;
while(p){ //将pb的系数取反
p->coef*=-1;
p=p->next;
}
pd=AddPolyn(pa,h);
for(p=h->next;p;p=p->next) //恢复pb的系数
p->coef*=-1;
return pd;
}//SubtractPolyn
float ValuePolyn(Polyn head,float x){//输入x值,计算并返回多项式的值
Polyn p;
int i;
float sum=0,t;
for(p=head->next;p;p=p->next){
t=1;
for(i=p->expn;i!=0;){
if(i<0){t/=x;i++;}//指数小于0,进行除法
else{t*=x;i--;}//指数大于0,进行乘法
}
sum+=p->coef*t;
}
return sum;
}//ValuePolyn
Polyn Derivative(Polyn head){//求解并建立a的导函数多项式,并返回其头指针
Polyn q=head->next,p1,p2,hd;
hd=p1=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点
hd->next=NULL;
while(q){
if(q->expn!=0){ //该项不是常数项时
p2=(Polyn)malloc(sizeof(struct Polynomial));
p2->coef=q->coef*q->expn;
p2->expn=q->expn-1;
p2->next=p1->next;//连接结点
p1->next=p2;
p1=p2;
}
q=q->next;
}
return hd;
}//Dervative
Polyn MultiplyPolyn(Polyn pa,Polyn pb){//求解并建立多项式a*b,返回其头指针
Polyn hf,pf;
Polyn qa=pa->next;
Polyn qb=pb->next;
hf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点
hf->next=NULL;
for(;qa;qa=qa->next){
for(qb=pb->next;qb;qb=qb->next){
pf=(Polyn)malloc(sizeof(struct Polynomial));
pf->coef=qa->coef*qb->coef;
pf->expn=qa->expn+qb->expn;
Insert(pf,hf);//调用Insert函数以合并指数相同的项
}
}
return hf;
}//MultiplyPolyn
void DevicePolyn(Polyn pa,Polyn pb){//求解并建立多项式a*b,返回其头指针
Polyn hf,pf,af,temp1,temp2,q;
Polyn qa=pa->next;
Polyn qb=pb->next;
hf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点,存储商
hf->next=NULL;
pf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点,存储余数
pf->next=NULL;
temp1=(Polyn)malloc(sizeof(struct Polynomial));
temp1->next=NULL;
temp2=(Polyn)malloc(sizeof(struct Polynomial));
temp2->next=NULL;
temp1=AddPolyn(temp1,pa);
while(qa!=NULL&&qa->expn>=qb->expn){
temp2->next=(Polyn)malloc(sizeof(struct Polynomial));
temp2->next->coef=(qa->coef)/(qb->coef);
temp2->next->expn=(qa->expn)-(qb->expn);
Insert(temp2->next,hf);
pa=SubtractPolyn(pa,MultiplyPolyn(pb,temp2));
qa=pa->next;
temp2->next=NULL;
}
pf=SubtractPolyn(temp1,MultiplyPolyn(hf,pb));
pb=temp1;
printf("商是:");
PrintPolyn(hf);
printf("余数是:");
PrintPolyn(pf);
}//DevicePolyn

int main(){
int m,n,flag=0;
float x;
Polyn pa=0,pb=0,pc,pd,pe,pf;//定义各式的头指针,pa与pb在使用前付初值NULL
printf("请输入a的项数:");
scanf("%d",&m);
pa=CreatePolyn(pa,m);//建立多项式a
printf("请输入b的项数:");
scanf("%d",&n);
pb=CreatePolyn(pb,n);//建立多项式a
//输出菜单
printf("**********************************************\n");
printf("操作提示:\n\t1.输出多项式a和b\n\t2.建立多项式a+b\n\t3.建立多项式a-b\n");
printf("\t4.计算多项式a在x处的值\n\t5.求多项式a的导函数\n\t6.建立多项式a*b\n");
printf("\t7.建立多项式a/b\n\t8.退出\n**********************************************\n");
for(;;flag=0){
printf("执行操作");
scanf("%d",&flag);
if(flag==1){
printf("多项式a:");PrintPolyn(pa);
printf("多项式b:");PrintPolyn(pb);continue;
}
if(flag==2){
pc=AddPolyn(pa,pb);
printf("多项式a+b:");PrintPolyn(pc);
DestroyPolyn(pc);continue;
}
if(flag==3){
pd=SubtractPolyn(pa,pb);
printf("多项式a-b:");PrintPolyn(pd);
DestroyPolyn(pd);continue;
}
if(flag==4){
printf("输入x的值:x=");
scanf("%f",&x);
printf("多项式a的值%g\n",ValuePolyn(pa,x));continue;
}
if(flag==5){
pe=Derivative(pa);
printf("多项式a的导函数:");PrintPolyn(pe);
DestroyPolyn(pe);continue;
}
if(flag==6){
pf=MultiplyPolyn(pa,pb);
printf("多项式a*b:");PrintPolyn(pf);
DestroyPolyn(pf);continue;
}
if(flag==7){
DevicePolyn(pa,pb);
continue;
}
if(flag==8) break;
if(flag<1||flag>8) printf("Error!!!\n");continue;
}//for
DestroyPolyn(pa);
DestroyPolyn(pb);
return 0;
}


C语言 一元稀疏多项式的运算
} Sort(a,n); Sort(b,m); } void OutputList(Poly a,int l)\/\/输出多项式 { int flag=1,i,k=0;\/\/项数计数器 if(l==0) \/\/若多项式为空,输出0 { printf("0\\n"); } for(i=0;i0&&flag!=1) \/\/系数大于0且不是第一项 printf("+"); if(a[i].coef!=1&&a[i]....

多项式怎么求有理项的根
2、辗转相除法:辗转相除法是一种通过多项式的辗转相除来求得其有理根的方法。它的基本思想是将多项式分解成若干个因式,然后分别求出每个因式的有理根,最终得到整个多项式的有理根。这种方法比较简单、快捷,而且不易出错。3、高斯消元法:高斯消元法是一种通过建立多项式的一元高次方程组,并使用消...

现在又这么一个问题,麻烦谁给我用matlab编写个拟合曲线的程序,让我的...
1、一元多项式回归:(1)确定多项式系数的命令:[p,S]=polyfit(x,y,m)说明:x=(x1,x2,…,xn),y=(y1,y2,…,yn);p=(a1,a2,…,am+1)是多项式y=a1xm+a2xm-1+…+amx+am+1的系数;S是一个矩阵,用来估计预测误差.(2)一元多项式回归命令:polytool(x,y,m)2、预测和预测误差估计.(...

如何解一元高次方程
如何解一元高次方程如下:一元高次方程的解法有多种方法,最常用的方法是配方法、因式分解法、求根公式法和牛顿迭代法等。1、配方法:将一元高次方程转化为一个多项式乘积等于零的形式,再分别解出每一个因式,即可得到方程的解。2、因式分解法:将一元高次方程进行因式分解,再分别解出每个因式,即可...

急求10道一元一次方程题!要有过程和答案,注意是初一的。
1\/5+1\/20X+1\/12X=1 8\/60X=4\/5 X=6 甲,乙两人合作的时间是6H.10.甲乙丙三个数的和是53,以知甲数和乙数的比是4:3,丙数比乙数少2,乙数是(),丙数是()设甲数为4X.则乙为3X.丙为3X-2.4X+3X+3X-2=53 10X=53+2 10X=55 X=5.5 3X=16.5 3X-2=16.5-2=14.5 ...

多项式的一次项是什么
多项式一次项的应用 1、曲线拟合:在数学和物理中,多项式常被用来拟合实验数据或理论模型。例如,一个常见的一次项应用是在线性回归分析中,其中多项式用于拟合数据并估计参数。在这种情况下,一次项通常对应于每个自变量的线性效应。2、插值:多项式插值是一种数学方法,用于在给定一些离散数据点的情况下,...

高中数学多项式概念问题
x);根据归纳假设, g(x)至多有k个实根, 从而f(x)至多有k+1个实根, 即n = k+1时结论成立.由数学归纳法原理, 结论对任意正整数n成立.以上证明实际上也适用于复根, 即一元n次多项式至多有n个复根.而代数基本定理保证一元n次多项式在计重数的意义上恰有n个复根,但不能在高中数学范围内证明.

如何解一元二次方程?
本例子以一元二次方程的计算为例,因式分解法:6x=x(x+4),6x-x(x+4)=0,x(6-x-4)=0,x(2-x)=0,所以x1=0,或者x2=2。请点击输入图片描述 请点击输入图片描述 因式分解:把一个多项式化为几个最简整式的乘积的形式,这种变形叫作分解因式。它是中学数学中最重要的恒等变形之一,它被...

初中数学一元一次方程 框架图今天下午5.00之前给
点评:解方程在去分母时要注意:(1)分数线除了可以代替除号“÷”以外,还具有括号的作用,如果分子是一个多项式,应该把它看作一个整体,去分母时,通常用括号括起来;(2)方程两边各项都乘以各分母的最小公倍数时,不要漏乘不含分母的项. 3.一元一次方程的实际应用 例6(2008年四川省宜宾市)小明准备为希望工程捐款...

一元二次方程实际应用公式大全
判断一个二次根式是否为最简二次根式主要方法是根据最简二次根式的定义进行,或直观地观察被开方数的每一个因数(或因式)的指数都小于根指数2,且被开方数中不含有分母,被开方数是多项式时要先因式分解后再观察。通过化简后,只含有一个未知数(一元),并且未知数的最高次数是2(二次)的整式方程...

三穗县17099077194: 一元多项式运算一.问题描述设计一个简单的一元稀疏多项式加法运算器.二.基本要求一元稀疏多项式简单计算器的基本功能包括:1.按照指数升序次序,输入... -
苌毅佳诺:[答案] #include #define A1(a,b,c,d,e) gotoxy(a,b);printf("c%d=",d);scanf("%f",e); #define A2(a,b,c,d,e) gotoxy(a,b);printf("e%... printf("请输入第一个多项式的项数:"); scanf("%d",&num1); q=head1=(struct ma*)malloc(sizeof(struct ma)); (*q)....

三穗县17099077194: 设计一个一元多项式简单的计算器(数据结构C语言版)急 -
苌毅佳诺: 除以上功能外,还有乘法和除法的计算和导数计算呢.这是我以前做的数据结构课程设计.希望能帮上你的忙.#include<stdio.h>#include<malloc.h> typedef struct Polynomial{ float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial; //Polyn...

三穗县17099077194: 一元多项式简单的计算器(程序设计题) -
苌毅佳诺: #include "stdio.h"#include "malloc.h"#define NULL 0 typedef struct PNode { int coef; int expn; struct PNode *next; }*POLY; //POLY为一元多项式的类型 void CreatPoly(POLY &H,int n) //一元多项式的创建操作,其中n为一元多项式的项数 { int i,...

三穗县17099077194: 一元多项式简单计算器 -
苌毅佳诺: #include#includeusing namespace std; void eatspaces(char* str); double expr(char* str); double term(char* str,int& index); double number(char* str,int& index); char* extract(char* str, int& index); const int MAX = 80; int main() { char buffer[MAX] = {0}; cout

三穗县17099077194: 如何用C语言实现一元多项式简单计算器的设计
苌毅佳诺: /*:--------------一元稀疏多项式计算(部分)--------------* * 基本功能:(1)输入并建立多项式; * * (2)多项式输出,以 c1,e1,c2,e2,...输出 * * 其中ci为系数,ei为指数; * * (3)多项式相加,c=a+b. * * 说明: (1)多项式一指数升序排序,...

三穗县17099077194: 数据结构要求做个多项式计算器 用C语言 哪位高人有代码谢谢 -
苌毅佳诺: #include

三穗县17099077194: 用C++写出以下程序一元多项式简单的计算器 -
苌毅佳诺: 我前段时间编了一元二次方程的解,挺详细,给你吧!!希望能帮你!!#include#include#include void main() { float a,b,c,s,x1,x2; double t; cout cin>>a>>b>>c; cout if(a==0.0) if(b!=0.0) cout else if (c==0.0) cout elsecout else { s=b*b-4*a*c; if(s>=0....

三穗县17099077194: 用C++编一个一元多项式计算器 大虾们 谢谢啦!!! -
苌毅佳诺: #include<stdio.h>#include<iostream.h>#include<malloc.h> typedef struct Polynomial{ float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial; //Polyn为结点指针类型 void Insert(Polyn p,Polyn h) {if(p->coef==0) free(p); //系数为0的话释放结...

三穗县17099077194: 一元稀疏多项式计算器 C语言编写 -
苌毅佳诺: datastruct.h typedef struct list { int c; //多项式的项数 int e; //多项式的指数struct list *next; //下一结点 }; typedef struct list *LinkList; typedef struct list Node; 下面是线性表的操作相关函数声明,对应文件ListOper.h://File: ListOper.h#ifndef ...

三穗县17099077194: C语言编写一元稀疏多项式计算器的仿真界面 -
苌毅佳诺: VC上可以直接拖控件做界面的,不用写代码 如果你要纯手写, 建议用VC设计出界面,利用它的rc文件

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网