ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:16.69KB ,
资源ID:5956247      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5956247.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一元多项式运算c语言版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

一元多项式运算c语言版.docx

1、一元多项式运算c语言版#include #include #include #define OK 1;#define ERROR 0;#define TURE 1;#define FALSE 0;#define MAXSIZE 100;typedef struct float coef; int expn;term,elemtype;typedef struct LNode elemtype data; struct LNode *next;List,*LinkList;typedef LinkList polynomail;int Initlist(LinkList *p) *p=(Link

2、List)malloc(sizeof(List); (*p)-next=NULL; return OK;int cmp(term a,term b) if(a.expnnext; if(*q)=NULL) *q=*p; return ERROR; while(*q)!=NULL) if(cmp(e,(*q)-data)=0) break; else *q=(*q)-next; if(*q)!=NULL) return TURE; if(*q)=NULL) return FALSE; int MakeNode(LinkList *s,elemtype e) if(!(*s) return OVE

3、RFLOW; (*s)-data=e; (*s)-next=NULL; return OK;void InsFirst(LinkList *q,LinkList *s) (*s)-next=(*q)-next; (*q)-next=*s;int DelFirst(LinkList *q,LinkList *s) LinkList p; p=*s; (*q)-next=p-next; return OK;void FreeNode(LinkList *p) LinkList q; q=*p; free(q);LinkList NextPos(LinkList *p,LinkList *q) re

4、turn (*q)-next;void SetCurElem(polynomail *p,float m) (*p)-data).coef=m;int ListEmpty(LinkList p) if(p-next=NULL) return TURE; if(p-next!=NULL) return FALSE;void Append(LinkList *p,LinkList *s) LinkList q; q=*p; while(q-next!=NULL) q=q-next; q-next=*s;void SortPolyn(polynomail *p) polynomail q,s,t,m

5、,n,x,y,x1,x2; q=*p; Initlist(&m); m-data.coef=0.0; m-data.expn=-1; n=m; s=q; y=s-next; t=y-next; x=q-next; x1=s; x2=t; while(x2!=NULL) while(t!=NULL) if(cmp(x-data,y-data)next; y=y-next; t=t-next; else x=y; x1=s; x2=t; if(cmp(x-data,y-data)0) x=y; x1=s; x2=t; x1-next=x2; n-next=x; x-next=NULL; n=n-n

6、ext; x1=q; x=q-next; x2=x-next; s=x1; y=x; t=x2; n-next=x; x-next=NULL; q-next=NULL; free(q); *p=m;void CreatePolyn(polynomail *p,int m) polynomail h,q100,s100,x; int i; elemtype e; elemtype t100; h=*p; e.coef=0.0; e.expn=-1; h-data=e; h-next=NULL; q0=h; Initlist(&x); for(i=0;inext; if(q-data).coef0

7、.0&(q-data).expn!=0) printf(%.4f*x(%d),(q-data).coef,(q-data).expn); else if(q-data).expn=0) printf(%.4f,(q-data).coef); else printf(%.4f*x(%d),(q-data).coef,(q-data).expn); q=q-next; while(q!=NULL) if(q-data).coef0.0&(q-data).expn!=0) printf(+%.4f*x(%d),(q-data).coef,(q-data).expn); else if(q-data)

8、.expn=0&(q-data).coef0.0) printf(+%.4f,(q-data).coef); else if(q-data).expn=0&(q-data).coefdata).coef); else printf(%.4f*x(%d),(q-data).coef,(q-data).expn); q=q-next; printf(n);void AddPolyn(polynomail *pa,polynomail *pb) polynomail ha,hb,qa,qb; ha=*pa; hb=*pb; qa=NextPos(pa,&ha); qb=NextPos(pb,&hb)

9、; elemtype a,b; float sum; while(qa&qb) a=qa-data; b=qb-data; switch(cmp(a,b) case -1: ha=qa; qa=NextPos(pa,&qa); break; case 0: sum=a.coef+b.coef; if(sum!=0.0) SetCurElem(&qa,sum); ha=qa; else DelFirst(&ha,&qa); FreeNode(&qa); DelFirst(&hb,&qb); FreeNode(&qb); qb=NextPos(pb,&hb); qa=NextPos(pa,&ha)

10、; break; case 1: DelFirst(&hb,&qb); InsFirst(&ha,&qb); qb=NextPos(pb,&hb); ha=NextPos(pa,&ha); break; if(!ListEmpty(*pb) Append(pa,&qb); FreeNode(&hb);void SubStractPolyn(polynomail *pa,polynomail *pb) polynomail ha,hb,qa,qb; ha=*pa; hb=*pb; qa=NextPos(pa,&ha); qb=NextPos(pb,&hb); elemtype a,b; floa

11、t sum; while(qb!=NULL) qb-data.coef=-qb-data.coef; qb=qb-next; qb=NextPos(pb,&hb); while(qa&qb) a=qa-data; b=qb-data; switch(cmp(a,b) case -1: ha=qa; qa=NextPos(pa,&qa); break; case 0: sum=a.coef+b.coef; if(sum!=0.0) SetCurElem(&qa,sum); ha=qa; else DelFirst(&ha,&qa); FreeNode(&qa); DelFirst(&hb,&qb

12、); FreeNode(&qb); qb=NextPos(pb,&hb); qa=NextPos(pa,&ha); break; case 1: DelFirst(&hb,&qb); InsFirst(&ha,&qb); qb=NextPos(pb,&hb); ha=NextPos(pa,&ha); break; if(!ListEmpty(*pb) Append(pa,&qb); FreeNode(&hb);double EvaluatePolyn(polynomail p,float x) polynomail q; double y=0.0; q=p-next; while(q!=NUL

13、L) y+=(q-data.coef)*pow(x,q-data.expn); q=q-next; return y;void DestroyPolyn(polynomail *p) free(*p);void ClearPolyn(polynomail *p) polynomail q; q=*p; while(*p!=NULL) *p=(*p)-next; free(q); q=*p; int InsertPolyn(polynomail *q,polynomail *s) while(*q)-next!=NULL) switch(cmp(*q)-next-data,(*s)-data)

14、case -1: *q=(*q)-next; break; case 0: (*q)-data.coef+=(*s)-data.coef; return OK; case 1: (*s)-next=(*q)-next; (*q)-next=*s; return OK; (*q)-next=*s; return OK; int DeletePolyn(polynomail *q,elemtype x) polynomail t; while(*q)-next!=NULL) if(*q)-next-data.coef=x.coef)&(*q)-next-data.expn=x.expn) t=(*

15、q)-next; (*q)-next=t-next; free(t); return OK; else *q=(*q)-next; if(*q)-next=NULL) return FALSE;int ChangePolyn(polynomail *p,elemtype x,elemtype y) polynomail s; MakeNode(&s,y); DeletePolyn(p,x); InsertPolyn(p,&s); return OK;void DifferentialPolyn(polynomail *p,int n) polynomail q,s; int i; q=*p;

16、s=q-next; for(i=0;idata.expn!=0) s-data.coef*=s-data.expn; s-data.expn-; q=q-next; s=q-next; else q-next=s-next; s=q-next; q=*p; s=q-next; void MultiplyPolyn(polynomail *pa,polynomail *pb) int n=0,i; polynomail s,t,q100; s=*pb; while(s-next!=NULL) n+; s=s-next; s=(*pb)-next; for(i=0;inext; while(t!=

17、NULL) t-data.coef*=s-data.coef; t-data.expn+=s-data.expn; t=t-next; s=s-next; for(i=1;inext; while(s!=NULL) s-data.coef/=s-data.expn+1; s-data.expn+; q=q-next; s=q-next; double DefiniteIntegralPolyn(polynomail *p,float x,float y) IntegratePolyn(p); double f; f=EvaluatePolyn(*p,y)-EvaluatePolyn(*p,x)

18、; return f;void InvolutionPolyn(polynomail *p,int n) polynomail q100; int i; for(i=0;in;i+) qi=*p; for(i=1;inext!=NULL) s=s-next; while(t-next!=NULL) t=t-next; m=s-data.expn; n=t-data.expn; Initlist(&x); x-data.coef=0.0; x-data.expn=-1; Initlist(&rest); rest-data.coef=0.0; rest-data.expn=-1; while(m

19、!=0&m=n) Initlist(&q1); q1-data.coef=0.0; q1-data.expn=-1; AddPolyn(&q1,q); x-data.coef=s-data.coef/(t-data.coef); x-data.expn=s-data.expn-t-data.expn; InsFirst(&rest,&x); q2=(*q)-next; while(q2!=NULL) q2-data.coef*=x-data.coef; q2-data.expn+=x-data.expn; q2=q2-next; SubStractPolyn(p,&q1); DestroyPo

20、lyn(&q1); s=*p; t=*q; while(s-next!=NULL) s=s-next; while(t-next!=NULL) t=t-next; m=s-data.expn; n=t-data.expn; q1=*p; q2=*q; *p=rest; *q=q1; DestroyPolyn(&q2);void main() polynomail p,q,p1,q1; int m,n,t; Initlist(&p); Initlist(&q); Initlist(&p1); Initlist(&q1); printf(please input the length of pol

21、ynomail:n); scanf(%d,&m); CreatePolyn(&p,m); CreatePolyn(&q,m); PrintPolyn(p); PrintPolyn(q); AddPolyn(&p,&q); PrintPolyn(p); printf(please input n= n); scanf(%d,&n); DifferentialPolyn(&p,n); PrintPolyn(p); IntegratePolyn(&p); PrintPolyn(p); printf(please input the length of polynomail:n); scanf(%d,&t); CreatePolyn(&p1,t); CreatePolyn(&q1,t); PrintPolyn(p1); PrintPolyn(q1); DivisionPolyn(&p1,&q1); PrintPolyn(p1); PrintPolyn(q1); printf(%lfn,EvaluatePolyn(p,3.0);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1