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

📄 多项式的加法 .c

📁 一个实现多项式加法的小程序
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>

typedef struct polyn
{
	int xi_data;
	int zhi_data;
	struct polyn *next;
}polyn;

polyn *create()
{
    polyn *head,*p1,*p2;
	int n=0;
	head=NULL;
	p1=(polyn *)malloc(sizeof(polyn));
	scanf("%d%d",&p1->xi_data,&p1->zhi_data);
	while((p1->xi_data!=0)||(p1->zhi_data!=0))
	{
		n=n+1;
		if(n==1)
			head=p1;
		else
			p2->next=p1;
		p2=p1;
		p1=(polyn *)malloc(sizeof(polyn));
		scanf("%d%d",&p1->xi_data,&p1->zhi_data);
	}
	p2->next=NULL;
	return(head);
}
polyn *addpolyn(polyn *headfir,polyn *headsec)
{
	polyn *p1,*p2,*p3,*p4,*p5;
	int n=0;
	p2=headsec;
	do
	{
		p1=headfir;
		while(p2->zhi_data!=p1->zhi_data&&p1->next!=NULL)
		{p3=p1;p1=p1->next;}
		if(p2->zhi_data==p1->zhi_data)
			p1->xi_data+=p2->xi_data;
		else{
			for(;p1->next!=NULL;)
			{
				n+=1;
				if(n==1)p1=headfir;
				else{p5=p1;p1=p1->next;}
				if(p2->zhi_data<p1->zhi_data)
				{
					p4=(polyn *)malloc(sizeof(polyn));
					p4->zhi_data=p2->zhi_data;
					p4->xi_data=p2->xi_data;
					p5->next=p4;p4->next=p1;
				}
			}
			if(p1->next==NULL)
			{
				p4=(polyn *)malloc(sizeof(polyn));
				p4->zhi_data=p2->zhi_data;
				p4->xi_data=p2->xi_data;
				p4->next=NULL;p1->next=p4;
			}
		
		}p2=p2->next;
	}while(p2!=NULL);
 return(headfir);
}

void print(polyn *head)
{
	polyn *p;
	p=head;
	if(head!=NULL)
	do
	{printf("%4d%3d",p->xi_data,p->zhi_data);
		p=p->next;
	}while(p!=NULL);
	printf("\n");
}
void main()
{
	polyn *head,*head1,*head2;
	head1=create();
	head2=create();
	head=addpolyn(head1,head2);
	printf("The result is:\n");
	print(head);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -