用C语言编程,要求解决下面的问题。1 问题描述对任意输入的两个一元多项式完成计算:和,差,乘积,商等运算。2要求与提示(1)多项式可用链表表示(2)求和与差算法完全一致,多项式相加减运算规则为:若两项指数相等 ,则系数相加减,若两指数不等,则两项按指数大小次序复抄。(3)求乘积时的规则为:把一个多项式中的每一项分别乘以另一个多项式的每一项,完成后再合并同类项(相乘时,系数相乘,指数相加)(4)多项式相除规则为:以被除数和除数的指数为依据相除。PS:这是写论文哈,要详细哦!!!还要 有注解呢!!谢谢了,拜托,早点完成哦!!!

热心网友

#include #include #include #include typedef int datatype;typedef struct LNode{float coef; /*多项式系数*/int expn; /*多项式指数*/struct LNode *next;}LNode,*linklist;/*---------创建带头结点的多项式链表--------*/linklist creat(){ linklist head,s,p,pre;float coef;int expn;head=(linklist)malloc(sizeof(LNode)); /*表头结点*/head-next=NULL;printf("输入系数:");scanf("%f",&coef);printf("输入指数:");scanf("%d",&expn);while (coef!=0。0) { printf("当系数等于零的时候结束!");s=(linklist)malloc(sizeof(LNode)); /*生成新结点*/s-coef=coef;s-expn=expn;s-next=NULL;pre=head; /*插入到有序的多项式链表中去*/p=head-next;while (p && p-expn expn) { pre=p;p=p-next;}s-next=p;pre-next=s;printf("读下一项:\n");printf("输入系数:\n");scanf("%f",&coef); printf("\n");printf("输入指数:");scanf("%d",&expn);}return head;}/*-----------输出多项式链表-------------*/void print(linklist head) { linklist p;p=head-next;while (p){ printf("%fX^%d+",p-coef,p-expn);p=p-next;}}/*-------------多项式相加----------------*/linklist add(linklist pa,linklist pb){linklist p,q,pre,r,head;float x;head=pa; p=pa-next; //p,q 指向头接点的下一个接点,即多项式的第一个接点q=pb-next;pre=pa; //pre指向p的前驱while((p!=NULL)&&(q!=NULL)) //处理多项式的相加的问题if(p-expnexpn) {pre=p;p=p-next;}else if (p-expn==q-expn){x=p-coef+q-coef;if(x!=0) //系数相加不为0的情况{p-coef=x;pre=p;p=p-next;}else //系数相加为0的情况{pre-next=p-next;free(p);p=pre-next;}r=q;q=q-next;free(r);}else {r=q-next;q-next=p;pre-next=q;pre=q;q=r;}if(q!=NULL)pre-next=q;free(pb); return head;}/*----主程序------*/void main(){linklist a,b,c;printf("请输入第一个多项式:");a=creat(); /*创建多项式链表a*/printf("请输入第二个多项式:");b=creat(); /*创建多项式链表b*/cout<<"您输入的第一个多项式为:"<

热心网友

楼上的到底是c还是C++啊

热心网友

#include #include #include #include typedef int datatype;typedef struct LNode{ float coef; /*多项式系数*/ int expn; /*多项式指数*/ struct LNode *next;}LNode,*linklist;/*---------创建带头结点的多项式链表--------*/linklist creat(){ linklist head,s,p,pre; float coef; int expn; head=(linklist)malloc(sizeof(LNode)); /*表头结点*/ head-next=NULL; printf("输入系数:"); scanf("%f",&coef); printf("输入指数:"); scanf("%d",&expn); while (coef!=0。0) { printf("当系数等于零的时候结束!"); s=(linklist)malloc(sizeof(LNode)); /*生成新结点*/ s-coef=coef; s-expn=expn; s-next=NULL; pre=head; /*插入到有序的多项式链表中去*/ p=head-next;while (p && p-expn expn) { pre=p; p=p-next; } s-next=p; pre-next=s; printf("读下一项:\n"); printf("输入系数:\n"); scanf("%f",&coef); printf("\n"); printf("输入指数:"); scanf("%d",&expn); }return head;}/*-----------输出多项式链表-------------*/void print(linklist head) { linklist p; p=head-next; while (p) { printf("%fX^%d+",p-coef,p-expn); p=p-next; } }/*-------------多项式相加----------------*/linklist add(linklist pa,linklist pb){ linklist p,q,pre,r,head; float x; head=pa; p=pa-next; //p,q 指向头接点的下一个接点,即多项式的第一个接点 q=pb-next; pre=pa; //pre指向p的前驱 while((p!=NULL)&&(q!=NULL)) //处理多项式的相加的问题 if(p-expnexpn) { pre=p; p=p-next; } else if (p-expn==q-expn) { x=p-coef+q-coef; if(x!=0) //系数相加不为0的情况 { p-coef=x; pre=p; p=p-next; } else //系数相加为0的情况 { pre-next=p-next; free(p); p=pre-next; } r=q; q=q-next; free(r); } else { r=q-next; q-next=p; pre-next=q; pre=q; q=r; } if(q!=NULL) pre-next=q; free(pb); return head; }/*----主程序------*/void main(){ linklist a,b,c; printf("请输入第一个多项式:"); a=creat(); /*创建多项式链表a*/ printf("请输入第二个多项式:"); b=creat(); /*创建多项式链表b*/ cout<<"您输入的第一个多项式为:"<

热心网友

#include void main( ){ int x,a,b,c,d,e,f coutabcdefendl;}