📄 test_2.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
typedef struct list
{
int data; //数
int da; //指数
struct list * next;
}list, * linklist;
void linkpoly(struct list * *pa,struct list *pb);
void main()
{
struct list *pa,*pb,*p;
int n,m;
pa=NULL;
pb=NULL;
printf("input pa end of 底数0 指数0\n");
scanf("%d%d",&n,&m);
while(n)
{
p=(struct list *)malloc(sizeof (struct list));
p->data=n;
p->da=m;
p->next=pa;
pa=p;
scanf("%d%d",&n,&m);
}
printf("input pb end of 底数0 指数0\n");
scanf("%d%d",&n,&m);
while(n)
{
p=(struct list *)malloc(sizeof (struct list));
p->data=n;
p->da=m;
p->next=pb;
pb=p;
scanf("%d%d",&n,&m);
}
linkpoly(&pa,pb);
printf("\n\n\t\t");
printf("A17=");
printf("%d X%d",pa->data,pa->da);
pa=pa->next;
while(pa)
{
if(pa->da==0) printf("+ %d",pa->data);
else if(pa->data<0) printf("%d X%d",pa->data,pa->da);
else printf("+ %d X%d",pa->data,pa->da);
pa=pa->next;
}
printf("\n");
}
void linkpoly(struct list * *pa,struct list *pb)
{
struct list * ha, * hb,* pf,*hp,*p;
int x,y;
ha=*pa;
hb=pb;
while(hb)
{
x=1;
ha=*pa;
y=hb->da;
hp=ha;
while(ha)
{
if(ha->da==y)
{
ha->data=ha->data+hb->data;
if(ha->data==0)
{
if(ha==hp)
{
*pa=ha->next;
p=ha;
ha=ha->next;
free(p);
}
else
{
hp->next=ha->next;
p=ha;
ha=ha->next;
free(p);
}
}
x=0;
}
hp=ha;
if(ha!=NULL) ha=ha->next;
}
if(x)
{
pf=(struct list *)malloc(sizeof (struct list));
pf->da=hb->da;
pf->data=hb->data;
pf->next=NULL;
hp->next=pb;
}
hb=hb->next;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -