




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <stdio.h>#include <stdlib.h>#define OK 1;#define READ(I) while (I)=getchar()='n'); /读入合法字符typedef int status;typedef struct PolyNode float coef; int expn; struct PolyNode *next;Poly,*P_Poly;status CreatPoly(P_Poly*,int); /创建多项式链表void OutP_Poly(P_Poly); /输出多项式void AddPoly
2、(P_Poly*,P_Poly,P_Poly); /求和void DecPoly(P_Poly*,P_Poly,P_Poly); /求差void DelPoly(P_Poly*); /删除并释放多项式status main() P_Poly PolyHead26=0; char menu,name; for (;) printf ("1.建立多项式n"); printf ("2.输出多项式n"); printf ("3.求两个多项式之和(必须先创建),建立和式并输出n"); printf ("4.求两个多项式之差(必须先创建
3、),建立差式并输出n"); printf ("5.删除多项式n"); printf ("6.退出n"); printf ("请选择指令:"); READ(menu) switch (menu) case '1': int n; printf ("请输入要创建的多项式的名称(单个小写字母表示):"); READ(name) if (NULL!=PolyHeadname-'a') printf ("此多项式已经存在!n"); break; printf (&
4、quot;请输入项数:"); scanf ("%d",&n); if(CreatPoly(&PolyHeadname-'a',n) printf ("多项式%c创建完毕!n",name); break; case '2': printf ("请输入要输出的多项式的名称:"); READ(name) if (NULL=PolyHeadname-'a') printf ("此多项式不存在!n"); break; OutP_Poly(PolyHea
5、dname-'a'); break; case '3': char name1,name2; printf ("请输入加式一的名称:"); READ(name1) if (NULL=PolyHeadname1-'a') printf ("此多项式不存在!请先创建n"); break; printf ("请输入加式二的名称:"); READ(name2) if (NULL=PolyHeadname2-'a') printf ("此多项式不存在!请先创建n"
6、;); break; printf ("请输入要创建的和式的名称:"); READ(name) if (NULL!=PolyHeadname-'a') printf ("此多项式已经存在!n"); break; AddPoly(&PolyHeadname-'a',PolyHeadname1-'a',PolyHeadname2-'a'); OutP_Poly(PolyHeadname-'a'); break; case '4': char name1,n
7、ame2; printf ("请输入被减式的名称:"); READ(name1) if (NULL=PolyHeadname1-'a') printf ("此多项式不存在!请先创建n"); break; printf ("请输入减式的名称:"); READ(name2) if (NULL=PolyHeadname2-'a') printf ("此多项式不存在!请先创建n"); break; printf ("请输入要创建的差式的名称:"); READ(name)
8、if (NULL!=PolyHeadname-'a') printf ("此多项式已经存在!n"); break; DecPoly(&PolyHeadname-'a',PolyHeadname1-'a',PolyHeadname2-'a'); OutP_Poly(PolyHeadname-'a'); break; case '5': printf ("请输入要删除的多项式名称:"); READ(name) if (NULL=PolyHeadname-&
9、#39;a') printf ("此多项式不存在!n"); break; DelPoly(&PolyHeadname-'a'); printf ("多项式%c已删除!n",name); break; case '6': return OK; status CreatPoly(P_Poly* P_PolyHead,int n) /为确保其他子函数正常运行,入口参数要求不含同类项、指数递减 int i=0; P_Poly p,tail; *P_PolyHead=(Poly*)malloc(sizeof(Poly
10、); (*P_PolyHead)->expn=n; tail=*P_PolyHead; printf ("请按照指数递减序输入最简形式的多项式n"); for (;i<n;i+) p=(Poly*)malloc(sizeof(Poly); printf ("请输入第%d项的系数和指数(系数,指数):",i+1); scanf ("%f,%d",&(p->coef),&(p->expn); tail->next=p; tail=p; tail->next=NULL; return OK
11、;void OutP_Poly(P_Poly PolyHead) int i=0; P_Poly p; printf ("%d ",PolyHead->expn); p=PolyHead->next; for (;i<PolyHead->expn;i+) printf ("%f,%d ",p->coef,p->expn); p=p->next; printf ("n");void AddPoly(P_Poly* P_PolyHead,P_Poly PolyHead1,P_Poly PolyHe
12、ad2) int i=0; P_Poly p1,p2,p,tail; p1=PolyHead1->next; p2=PolyHead2->next; *P_PolyHead=(P_Poly)malloc(sizeof(Poly); p=tail=*P_PolyHead; while(p1&&p2) int e1,e2; e1=p1->expn; e2=p2->expn; if (e1>e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; *p=*p1; p1=p1->next;
13、 i+; else if(e1=e2) float sum_c=p1->coef+p2->coef; if (sum_c!=0.0) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; p->coef=sum_c; p->expn=e1; i+; p1=p1->next; p2=p2->next; else if (e1<e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; *p=*p2; p2=p2->next; i+;
14、 while (p1) p=(Poly*)malloc(sizeof(Poly); *p=*p1; tail->next=p; tail=p; p1=p1->next; i+; while (p2) p=(Poly*)malloc(sizeof(Poly); *p=*p2; tail->next=p; tail=p; p2=p2->next; i+; (*P_PolyHead)->expn=i; tail->next=NULL;void DecPoly(P_Poly* P_PolyHead,P_Poly PolyHead1,P_Poly PolyHead2)
15、 int i=0; P_Poly p1,p2,p,tail; p1=PolyHead1->next; p2=PolyHead2->next; *P_PolyHead=(P_Poly)malloc(sizeof(Poly); p=tail=*P_PolyHead; while(p1&&p2) int e1,e2; e1=p1->expn; e2=p2->expn; if (e1>e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; *p=*p1; p1=p1->next; i+;
16、 else if(e1=e2) float dif_c=p1->coef-p2->coef; if (dif_c!=0.0) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; p->coef=dif_c; p->expn=e1; i+; p1=p1->next; p2=p2->next; else if (e1<e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; p->coef=-p2->coef; p->expn=p2->expn; p2=p2->next; i+; while (p1) p=(Poly*)malloc(sizeof(Poly); *p=*p1; tail->next=p; tail=p; p1=p1->next; i+; while (p2) p=(Poly*)m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45448-2025再生变形高温合金原料
- GB/T 13460-2025再生橡胶通用规范
- 项目管理复杂问题解析试题及答案
- 产品销售协议合同2025
- 中等职业教育联合办学协议
- 企业金融管理的变革方向试题及答案
- 未来展望2025年银行从业资格证试题及答案
- 证券从业资格证考试复习材料的选择与使用技巧试题及答案
- 微生物耐药性检测与解读试题及答案
- 灵活运用项目管理考试的理论知识试题及答案
- 2024年交管12123学法减分考试题库及完整答案【考点梳理】
- 急诊护理一科一特色
- 永辉超市干货部培训课件
- BIPAP呼吸机的使用与护理课件
- 统编版三年级下册第二单元“寓言故事”大单元整体学习设计
- 卵巢癌术后护理查房
- icu家属健康宣教
- 技术创新与产品研发投入效果评估与优化报告
- 挪用公款还款协议书范本
- 架空输电线路基础设计规程2023
- TWI-JM(工作改善)课件
评论
0/150
提交评论