多项式编程 c语言,多项式c语言编程.docx

多项式c语言编程.docx

include stdlib.hinclude stdio.htypedef struct nodedouble coef; 系数int exp; 指数struct node *next;Polynode,*Polynomial; void errorchar *sfprintfstderr,sn,s;exit1;Polynode* createNodedouble coef,int exp 为结点分配空间Polynode *pPolynode*mallocsizeofPolynode;ifperror分配失败;p-coefcoef;p-expexp;p-nextNULL; return p;void insertNodePolynomial p,Polynode *newnodePolynode *qp;找到链表的末尾,循环结束时,p指向最后一个结点whileq-nextNULLqq-next;q-nextnewnode; Polynomial createPolynomialint mdouble coef;int exp,i1;Polynode *newnode;Polynomial p; 创建头结点newnodecreateNode0,0; p指向头结点pnewnode; 依次创建多项式各项对应的结点whileimprintf系数;scanflf,coef;printf指数;scanfd,exp;newnodecreateNodecoef,exp;insertNodep,newnode;ii1;return p; void appendPolynomial p,Polynode *currentnodePolynode *newnode,*q; 找到链表p的尾结点qqp;whileq-nextqq-next; 复制currentnode指向的每一个结点,链入p的末尾whilecurrentnodenewnodecreateNodecurrentnode-coef,currentnode-exp;q-nextnewnode;qq-next;currentnodecurrentnode-next;void outputPolynomialPolynomial pPolynode *currentnode;currentnodep-next;ifcurrentnodeerrorPolynomial is null; 输出第一项printflfxd,currentnode-coef,currentnode-exp;currentnodecurrentnode-next;whilecurrentnodeifcurrentnode-coef0printf;printflfxd,currentnode-coef,currentnode-exp;currentnodecurrentnode-next; printfn;void freePolynomialPolynomial pPolynode *q; whilep qp;pp-next;freeq; Polynomial addPolynomialPolynomial pa,Polynomial pbPolynomial pc;Polynode *currenta,*currentb,*newnode;double coef;currentapa-next;currentbpb-next;newnodecreateNode0,0; 创建链表pc的头结点pcnewnode;pc指向头结点whilecurrentacurrentb ifcurrenta-expcurrentb-exp newnodecreateNodecurrentb-coef,currentb-exp;insertNodepc,newnode;currentbcurrentb-next;else ifcurrenta-expcurrentb-expnewnodecreateNodecurrenta-coef,currenta-exp;insertNodepc,newnode;currentacurrenta-next;else 代表currenta-expcurrentb-exp coefcurrenta-coefcurrentb-coef;ifcoef0 newnodecreateNodecoef,currenta-exp;insertNodepc,newnode; currentacurrenta-next;currentbcurrentb-next; 将pa中剩余的节点加入pc中ifcurrentaappendpc,currenta; 将pb中剩余的节点加入pc中ifcurrentbappendpc,currentb;return pc;void derivatePolynomial pPolynode *currentnodep-next;whilecurrentnodecurrentnode-coefcurrentnode-coef*currentnode-exp;currentnode-expcurrentnode-exp-1;currentnodecurrentnode-next;void showMenuprintfn;printf 1.求和n;printf 2.求导n;printf 3.退出n;printfn;printf请输入要进行的操作1或2或3; void main Polynomial pa,pb,pc;int choice,num;whiletrueshowMenu;scanfd,choice;printfn; switchchoice 求和case 1printf请输入多项式1的项数;scanfd,num;printf按照指数从小到大的次序,输入多项式1的系数和指数n;pacreatePolynomialnum; printf请输入多项式2的项数;scanfd,num;printf按照指数从小到大的次序,输入多项式2的系数和指数n;pbcreatePolynomialnum;pcaddPolynomialpa,pb;printf多项式1;outputPolynomialpa;printf多项式2;outputPolynomialpb;printf求和的结果;outputPolynomialpc; 释放空间freePolynomialpa;freePolynomialpb;freePolynomialpc;break; 求导case 2printf请输入多项式的项数; scanfd,num;printf按照指数从小到大的次序,输入多项式的系数和指数n;pccreatePolynomialnum; printf输入的多项式; outputPolynomialpc; derivatepc; printf求导的结果; outputPolynomialpc;freePolynomialpc; break; 退出case 3 exit0; 错误的输入defaultprintf输入错误n;exit0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值