📄 多项式的加法 .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 + -