c语言数据结构题,请问哪出错了?(可能是void addpolyn(polynomail &Pa,polynomail &Pb)这个函数错了

来源:百度知道 编辑:UC知道 时间:2024/05/13 22:47:54
题目:设计线性表链式存储结构,编程下列功能:一元多项式的相加。

#include "stdlib.h"
#include "stdio.h"

typedef struct term
{
float coef; //定义结构体
int expn;
term *next;
}term, *polynomail;

int initlist(polynomail &l)
{
l=(polynomail)malloc(sizeof(term));//初始化
if(!l)
exit(0);
l->next=NULL;
return 1;
}

void creatpolyn(polynomail &p,int m)
{
initlist(p);
polynomail h,s; //建立多项式
initlist(s);
h=p;
h->coef=0;h->expn=-1;
printf("请依次输入");
printf("%d",m);
printf("个非零项");
for(int i=0;i<m;i++)
{
printf("\n第");printf("%d",i+1);printf("项的系数为:");
scanf("%d",&s->coef);
printf("\n第");printf("%d",i+1);printf("项的次数为:");
scanf("%d",&s->expn);
h->next=s;

对了,楼主,是void addpolyn(polynomail &Pa,polynomail &Pb)出错,当pa的幂小于pb时应该把pb插入pa前面(反之同理),pb下移,你刚好搞反,改了再试试
你的程序看起来很吃力,我没全部看完,addpolyn最后一句,既然pa为空哪来的pa->next?