#include<stdio.h>
#include<stdlib.h>
typedef int Status;
typedef struct LinkList{
int data;
struct LinkList* next;
}LinkList,*Link;
Status GetList_L(struct LinkList*L,int m){
struct LinkList *p=NULL,*q=NULL;
int i;
L=(LinkList*)malloc(sizeof(LinkList));
L->data=0;
L->next=NULL;
p=L;
for(i=1;i<=2*m;i++){
q=(struct LinkList*)malloc(sizeof(LinkList));
q->data=0;
q->next=NULL;
scanf("%d",&q->data);
p->data=q->data;
p=p->next;
}
p->next=NULL;
}
int main()
{
struct LinkList*L1=NULL,*L2=NULL,*L=NULL,*p=NULL,*q=NULL,*r=NULL;
int m,n,t,i,max=0;
scanf("%d %d %d",&n,&m,&t);
GetList_L(L1,n);
GetList_L(L2,m);
L=(struct LinkList*)malloc(sizeof(LinkList));
L->data=0;
L->next=NULL;
p=L1->next->next;
for(i=0;i<n;i++){
if(p->data>max){max=p->data;}
p=p->next->next;
}
p=L2->next->next;
for(i=0;i<m;i++){
if(p->data>max){max=p->data;}
p=p->next->next;
}
if(t=0)
{
while(L1||L2){
p=L1->next->next;
q=L2->next->next;
r=L->next;
r->data=0;
for(i=0;i<=max;i++){
while(p->data==i){r->data+=p->data;p=p->next->next;
}
if(q->data==i){r->data+=p->data;p=p->next->next;
}
r->next->data=i;
r=r->next->next;
r->data=0;
}
}
}
if(t=1)
{
while(L1||L2){
p=L1->next->next;
q=L2->next->next;
r=L->next;
r->data=0;
for(i=0;i<=max;i++){
while(p->data==i){r->data+=p->data;p=p->next->next;
}
if(q->data==i){r->data-=p->data;p=p->next->next;
}
r->data=-r->data;
p=L1->next->next;
q=L2->next->next;
r->next->data=i;
r=r->next->next;
r->data=0;
}
r=NULL;
}
}
while(L){
while(L->next->data!=0)printf("%d",L->next->data);
L=L->next->next;
if(L->next->data>0&&L->next->data!=0)printf("+%dx",L->next->data);
else if(L->next->data>0&&L->next->data==0)printf("%dx",L->next->data);
else if(L->next->data<0)printf("%dx",L->next->data);
L=L->next->next;
for(i=2;i<=max;i++)
{
while(L->next->data>0)printf("+%dx^%d",L->next->data,i);
while(L->next->data<0)printf("%dx^%d",L->next->data,i);
L=L->next->next;
}
}
return 0;
}
之前在机房运行是输入完就停止运行,在自己电脑上是输入不了第三行,在手机上是Segmentation fault (core dumped),在网上搜了一下但是指针学的不好求大神指教