⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_2.cpp

📁 这是一个将两个方程合并的程序
💻 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 + -