主题:新手求帮助
大一刚刚学。。。关于用链表的多项式合并。。帮我在原来基础上改下吧。。因为不懂。。请不要改的太高深
#define NULL 0
typedef struct node
{int c;
int e;
struct node *next;
}polynode;
polynode *createpoly(int n)
{
int i;
polynode *l;
polynode *p;
l=(polynode*)malloc(sizeof(polynode));
l->next=NULL;
for(i=n;i>0;i--)
{
p=(polynode*)malloc(sizeof(polynode));
printf("please input %d xishu:",i);
scanf("%d",&p->c);
printf("please input %d zhishu:",i);
scanf("%d",&p->e);
p->next=l->next;
l->next=p;
}
return(l);
}
void printpoly(polynode *h,polynode *l)
{
int i=1;
polynode *p,*q,*n,*m;
n=(polynode*)malloc(sizeof(polynode));
m=n;
printf("\n");
while(p&&q)
{
if(p->next->e>q->next->e)
{
n->next=q;
q=q->next->next;
}
if(q->next->e>p->next->e)
{
n->next=p;
p=p->next->next;
}
if(q->next->e=p->next->e)
{
p->next->c+=q->next->c;
n->next=p;
p=p->next->next;
q=q->next->next;
}
}
if(q=NULL)
n->next=p->next;
else
n->next=q->next;
while(m!=NULL)
{
printf("%d xishu:%d\n",i,m->c);
printf("%d zhishu:%d\n",i,m->e);
m=m->next; i++;
}
}
main()
{
int n,m;
polynode *h,*l;
printf("please input n:");
scanf("%d",&n);
h=createpoly(n);
printf("please input m:");
scanf("%d",&m);
l=createpoly(m);
printpoly(h,l);
}
#define NULL 0
typedef struct node
{int c;
int e;
struct node *next;
}polynode;
polynode *createpoly(int n)
{
int i;
polynode *l;
polynode *p;
l=(polynode*)malloc(sizeof(polynode));
l->next=NULL;
for(i=n;i>0;i--)
{
p=(polynode*)malloc(sizeof(polynode));
printf("please input %d xishu:",i);
scanf("%d",&p->c);
printf("please input %d zhishu:",i);
scanf("%d",&p->e);
p->next=l->next;
l->next=p;
}
return(l);
}
void printpoly(polynode *h,polynode *l)
{
int i=1;
polynode *p,*q,*n,*m;
n=(polynode*)malloc(sizeof(polynode));
m=n;
printf("\n");
while(p&&q)
{
if(p->next->e>q->next->e)
{
n->next=q;
q=q->next->next;
}
if(q->next->e>p->next->e)
{
n->next=p;
p=p->next->next;
}
if(q->next->e=p->next->e)
{
p->next->c+=q->next->c;
n->next=p;
p=p->next->next;
q=q->next->next;
}
}
if(q=NULL)
n->next=p->next;
else
n->next=q->next;
while(m!=NULL)
{
printf("%d xishu:%d\n",i,m->c);
printf("%d zhishu:%d\n",i,m->e);
m=m->next; i++;
}
}
main()
{
int n,m;
polynode *h,*l;
printf("please input n:");
scanf("%d",&n);
h=createpoly(n);
printf("please input m:");
scanf("%d",&m);
l=createpoly(m);
printpoly(h,l);
}