📄 多项式.c.txt
字号:
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
typedef struct node
{float coef; int exp;
struct node *next;
}linknode,*link;
void Insert(link head,link s)
{link pre=NULL,p=NULL;
pre=head; p=pre->next;
while(p!=NULL)
{if(p->exp>s->exp)break;
pre=p; p=p->next;
}
s->next=p; pre->next=s;
}
link CreatPoly()
{link head=NULL,s=NULL;
float co;
int last=-1,ex,flag=0;
head=(link)malloc(sizeof(linknode));
head->next=NULL;
do
{printf("\n Please input coef(end up with 0):");
scanf("%f",&co);
if(co==0)flag=1;
if(flag==0)
{printf("Please input exp:");
scanf("%d",&ex);
if(ex<=last)continue;
last=ex;
s=(link)malloc(sizeof(linknode));
s->coef=co;s->exp=ex;
Insert(head,s);
}
}while(flag==0);
return(head);
}
void AddPoly(link pa,link pb)
{link pc,pre,u; float sum;
pc=pa;pre=pa; pa=pa->next;
u=pb; pb=pb->next;
free(u);
while(pa&&pb)
{ if(pa->exp<pb->exp)
{
pre=pa;
pa=pa->next;
}
else if(pa->exp>pb->exp)
{
u=pb->next;
pb->next=pa;pre->next=pb;
pre=pb;pb=u} else
{ sum=pa->coef+pb->coef;
if(sum!=0.0)
{pa->coef=sum;pre=pa;}
else
{pre->next=pa->next;free(pa);}
pa=pre->next;
u=pb; pb=pb->next;
free(u);
}
}
if(pb)pre->next=pb;
}
void Display(link head)
{ link p=NULL;
p=head->next;
while(p!=NULL)
{ if(p->exp==0)printf("%g+",p->coef,p->exp);
else printf("%gX^%d+",p->coef,p->exp);
p=p->next;
}
if(head->next==NULL)printf("0");
else printf("\b");
}
void main(){ link pa=NULL,pb=NULL;
printf("Please input ploy a:");
pa=CreatPoly();
printf("Please input ploy b:");
pb=CreatPoly();
printf("\n Pa="); Display(pa);printf("\n Pb=");
Display(pb);
AddPoly(pa,pb);
printf("\n Pc=");
Display(pa); getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -