BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #30253同步于 2009/10/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

一元多项式的相加,大牛指教!

zhangweitai
2009/10/22镜像同步7 回复
我做了一个,但是编译有问题,creat函数是这样吗?第一项设不设0x-1行不行?主函数怎么写? #include"stdio.h" #include"malloc.h" #include"stdlib.h" #define LEN sizeof(polynomail) struct polynomail{//建立一个结构体 float coef;//系数 int expn;//指数 polynomail *next; }; void creat(polynomail *L,int m){ //逆位序输入m个元素的值,建立带表头节点的单线性表L polynomail *p;int i; L=(polynomail *)malloc(LEN); L->next=NULL;//先建立一个带头节点的单链表 for(i=m;i<=1;--i) { p= (polynomail *)malloc(LEN);//生成新节点 scanf("%f,%f",&p->coef,&p->expn);//输入元素值 p->next=L->next;L->next=p;//插入到表头 } }//creatplynomail *p void add(polynomail *polya,polynomail *polyb)//一元多项式相加函数将和多项式存放在多项式polya中,并将多项式ployb删除 { polynomail *p,*q,*h,*temp; float sum; p=polya->next;//令p和q分别指向polya和polyb多项式链表中的第一个结点 q=polyb->next; h=polya; //位置指针,指向和多项式polya while(p!=NULL&&q!=NULL) { if(p->expn<q->expn) { h->next=p; //将p结点加入到和多项式中 h=h->next; p=p->next; } else if(p->expn==q->expn) /*若指数相等,则相应的系数相加*/ { sum=p->coef+q->coef; if(sum!=0) { p->coef=sum; h->next=p;h=h->next;p=p->next; temp=q;q=q->next;free(temp); } else /*如果系数和为零,则删除结点p与q,并将指针指向下一个结点*/ { temp=p->next;free(p);p=temp; temp=q->next;free(q);q=temp; } } else //若p指数大于q指数 { h->next=q; //p结点不动,将q结点加入到和多项式中 h=h->next; q=q->next; } } if(p!=NULL) /*多项式polya中还有剩余,则将剩余的结点加入到和多项式中*/ h->next=p; else //否则将polyb的结点加入到和多项式中 h->next=q; } void print(polynomail * p) /*输出函数,打印出一元多项式*/ { while(p->next!=NULL) { p=(polynomail *)malloc(LEN); p=p->next; printf("(%f,%f) ",p->coef,p->expn); } } void main() { int a,b; polynomail *p,*q; printf("请输入俩个多项式的非零系数个数:\n"); scanf("%ld,%ld",&a,&b); printf("请输入多项式一:\n"); creat(p,a); print(p); printf("第一个多项式已载入!\n请输入多项式二:\n"); creat(q,b); print(q); add(p,q); printf("相加后的多项式是:\n"); print(p); }
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
zhangweitai机器人#1 · 2009/10/22
【 在 zhangweitai 的大作中提到: 】 : 我做了一个,但是编译有问题,creat函数是这样吗?第一项设不设0x-1行不行?主函数怎么写? : #include"stdio.h" : #include"malloc.h" : ................... 数据结构的作业 ,不懂啊
wks机器人#2 · 2009/10/22
起名叫creat干嘛,跟那个系统调用一个名字。
zhangweitai机器人#3 · 2009/10/23
【 在 wks 的大作中提到: 】 : 起名叫creat干嘛,跟那个系统调用一个名字。 这个可以改,但是还有没有别的问题?
LoveRose机器人#4 · 2009/10/23
=.= 【 在 wks (cloverprince) 的大作中提到: 】 : 起名叫creat干嘛,跟那个系统调用一个名字。
LoveRose机器人#5 · 2009/10/23
估计没人有这热情来看这么一大段代码…… 【 在 zhangweitai (&#10084;紫侠狼&#10084;) 的大作中提到: 】 : 这个可以改,但是还有没有别的问题?
jmpesp机器人#6 · 2009/10/23
【 在 LoveRose 的大作中提到: 】 : 估计没人有这热情来看这么一大段代码…… 正解,呵呵
LoveRose机器人#7 · 2009/10/23
尝试帮lz看了一下,还是放弃了…… 【 在 jmpesp (缅甸果敢第一司令) 的大作中提到: 】 : 正解,呵呵