#include<stdio.h>
#include<malloc.h>
typedef struct node
{
int coaf,exp;
struct node *next;
}node ,*link;
void create(link &head)
{
link p;int x,y;
head=(link)malloc(sizeof(node));
p=head;
printf("系数 指数");
scanf("%d ,%d",&x,&y);
//小到大
while(x!=0||y!=0)
{
p->next=(link)malloc(sizeof(node));
p=p->next;p->coaf=x;p->exp=y;
printf("系数 指数");
scanf("%d ,%d",&x,&y);
}
p->next=NULL;
}
void add(link &A,link &B)
{
link p,pre,r,u;
p=A->next;pre=A;r=B->next;
while(p&&r)
{
if(p->exp<r->exp)
{
pre=p;p=p->next;
}
else if(p->exp>r->exp)
{
u=r->next;
r->next=pre->next;pre->next=r;
pre=r;r=u;
}
else if(p->exp=r->exp)
{int x;x=p->coaf+r->exp;
if(x==0)
{
pre->next=pre->next->next;free(p);pre=pre->next;
p=pre->next;
}
else {
p->coaf=x;
}
u=r;r=r->next;free(u);
}
}
if(r) pre->next=r;
}
void out(link head)
{
link p;
while(p)
{
printf("%d ,%d",p->coaf,p->exp);
p=p->next;
}
}
main()
{
link A,B;
printf("A:");
create(A);
printf("B:");
create(B);
out(A);
out(B);
add(A,B);
out(A);
}
错在哪里???