2个炼表数据相加。哪错了,该如何解决
2个炼表数据相加。。哪错了
struct num
{
int i;
int j;
struct num *next;
};
for(p1=g1;p1-> next!=NULL;p1=p1-> next)
{
for(p2=g2;p2-> next!=NULL;p2=p2-> next)
{
k=p1-> j;
if(p1-> i==p2-> i)
{
p3-> i=p1-> i;
p3-> j=p1-> j+p2-> j;
t=(struct num*)malloc(sizeof(struct num));
t-> next=NULL;
p3-> next=t;
p3=t;
continue;
}
}
if(p2-> next==NULL&&k==p1-> j)
{
p3-> i=p1-> i;
p3-> j=p1-> j;
}
while(p3-> next!=NULL)
{
printf( "%dx^%d+ ",p3-> j,p3-> i);
}
------解决方案--------------------
在你的程序中,
是否存在这样的 预设条件:
g1 多项式中,最高次方 要高于 g2多项式中的最高次方?
否则,
g2 中的最高次方数据就丢失了 ~
struct num
{
int i;
int j;
struct num *next;
};
for(p1=g1;p1-> next!=NULL;p1=p1-> next)
{
for(p2=g2;p2-> next!=NULL;p2=p2-> next)
{
k=p1-> j;
if(p1-> i==p2-> i)
{
p3-> i=p1-> i;
p3-> j=p1-> j+p2-> j;
t=(struct num*)malloc(sizeof(struct num));
t-> next=NULL;
p3-> next=t;
p3=t;
continue;
}
}
if(p2-> next==NULL&&k==p1-> j)
{
p3-> i=p1-> i;
p3-> j=p1-> j;
}
while(p3-> next!=NULL)
{
printf( "%dx^%d+ ",p3-> j,p3-> i);
}
------解决方案--------------------
在你的程序中,
是否存在这样的 预设条件:
g1 多项式中,最高次方 要高于 g2多项式中的最高次方?
否则,
g2 中的最高次方数据就丢失了 ~