《2022年多项式加法 2.pdf》由会员分享,可在线阅读,更多相关《2022年多项式加法 2.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、多项式加法#include #include #define Max_Size 100 typedef struct node float coef; int expn; struct node *next; PolyNode; int CreCoeStr(float C) char flag; int i=0; do scanf(%f,&Ci+); scanf(%c,&flag); while (flag!=#); return(i); void CreExpStr(int E) int i=0; char flag; do scanf(%d,&Ei+); scanf(%c,&flag);
2、while (flag!=#); void InitPolyList(PolyNode *sq) if(*sq=(PolyNode *)malloc(sizeof(PolyNode)=NULL) exit(1); (*sq)-next=NULL; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - void CreatPolyList(PolyNode *sq,float C,int E,int num) int i; PolyNo
3、de *s,*r=*sq; for(i=0;icoef=Ci; s-expn=Ei; r-next=s; r=s; r-next=NULL; void InsertSortPoly(PolyNode *sq) PolyNode *p,*q,*r,*u; p=(*sq)-next; (*sq)-next=NULL; while (p) r=*sq; q=(*sq)-next; while (q&q-expnexpn) r=q; q=q-next; u=p-next; p-next=r-next; r-next=p; p=u; void DispList(PolyNode *sq) PolyNod
4、e *p=sq-next; while(p) printf(%7.2f,%d),p-coef,p-expn); p=p-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - printf(n); PolyNode *AddPoly(PolyNode *sq_a,PolyNode *sq_b) PolyNode *p_1=sq_a-next,*p_2=sq_b-next,*tc,*p,*s,*pc; InitPolyList
5、(&pc); tc=pc; while (p_1&p_2) if(p_1-expnexpn) if(s=(PolyNode *)malloc(sizeof(PolyNode)=NULL) exit(1); s-coef=p_1-coef; s-expn=p_1-expn; s-next=NULL; tc-next=s; tc=s; p_1=p_1-next; else if(p_1-expnp_2-expn) if(s=(PolyNode *)malloc(sizeof(PolyNode)=NULL) exit(1); s-coef=p_2-coef; s-expn=p_2-expn; s-n
6、ext=NULL; tc-next=s; tc=s; p_2=p_2-next; else if(p_1-coef+p_2-coef) if(s=(PolyNode *)malloc(sizeof(PolyNode)=NULL) exit(1); s-coef=p_1-coef+p_2-coef; s-expn=p_1-expn; s-next=NULL; tc-next=s; tc=s; p_1=p_1-next; p_2=p_2-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
7、 - 第 3 页,共 5 页 - - - - - - - - - if(p_1) p=p_1; else p=p_2; while (p) if(s=(PolyNode *)malloc(sizeof(PolyNode)=NULL) exit(1); s-coef=p-coef; s-expn=p-expn; tc-next=s; tc=s; p=p-next; tc-next=NULL; return pc; void main() PolyNode *sq_1,*sq_2,*sq_3; float C_1Max_Size,C_2Max_Size; int E_1Max_Size,E_2Ma
8、x_Size,num_1,num_2; printf(ntt 两个多项式相加运算 n); printf(n); printf(n); printf( 请输入多项式A 的各项系数 (以#结束 ): ); num_1=CreCoeStr(C_1); printf(n 请输入多项式A 的各项幂数 (以#结束 ): ); CreExpStr(E_1); printf(n 请输入多项式B 的各项系数 (以#结束 ): ); num_2=CreCoeStr(C_2); printf(n 请输入多项式B 的各项幂数 (以#结束 ): ); CreExpStr(E_2); InitPolyList(&sq_1
9、); InitPolyList(&sq_2); CreatPolyList(&sq_1,C_1,E_1,num_1); CreatPolyList(&sq_2,C_2,E_2,num_2); printf(n 原多项式A :n); DispList(sq_1); printf(n 原多项式B :n); DispList(sq_2); InsertSortPoly(&sq_1); InsertSortPoly(&sq_2); printf(n 排列后的多项式A : n); DispList(sq_1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - printf(n 排列后的多项式B : n); DispList(sq_2); sq_3=AddPoly(sq_1,sq_2); printf(n 多项式相加结果: n); DispList(sq_3); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -
限制150内