📄 1.5.txt
字号:
#include "stdlib.h"
#include "stdio.h"
typedef struct Node
{
int zhi;
int xi;
struct Node *next;
}Node;
void creatpolyn(Node *head)//依次输入系数和指数,直到最后输入的系数为0,(注意输入的指数由小到大)
{
Node *p,*q;
int x,z;
if(head)
{
p=head;
scanf("%d",&x);
while(x!=0)
{
q=(Node *)malloc(sizeof(Node));
q->xi=x;
scanf("%d",&z);
q->zhi=z;
p->next=q;
p=q;
scanf("%d",&x);
}
p->next=NULL;
}
else
exit(1);
}
void addpolyn(Node *la,Node *lb)//完成多项式相加运算,结果存在la中
{
Node *p,*q,*prior_p,*temp;;//prior_p是p的前驱
if(la&&lb)
{
q=lb->next;
while(q!=NULL)
{
prior_p=la;
p=la->next;
while(p!=NULL)
{
if(q->zhi==p->zhi)
{
if(p->xi+q->xi==0)
{
prior_p->next=p->next;
q=q->next;
}
else
{
p->xi=p->xi+q->xi;
q=q->next;
}
break;
}
else if(q->zhi<p->zhi)
{
temp=q->next;
prior_p->next=q;//
q->next=p;
q=temp;
break;
}
else
{
p=p->next;
prior_p=prior_p->next;
}
if(p==NULL)
p=p->next;
}
}
}
else
exit(1);
}
void printpolyn(Node *head)//打印输出一元多项式
{
Node *p;
if(head)
{
p=head->next;
while(p->next!=NULL)
{
printf("%d",p->xi);
printf("x^%d",p->zhi);
printf("+");
p=p->next;
}
printf("%d",p->xi);
printf("x^%d",p->zhi);
}
else
exit(1);
}
void main()
{
Node *la,*lb;
la=(Node *)malloc(sizeof(Node));
lb=(Node *)malloc(sizeof(Node));
printf("输入多项式la:");
creatpolyn(la);
printf("输入多项式lb:");
creatpolyn(lb);
printpolyn(la);
printf("\n");
printpolyn(lb);
addpolyn(la,lb);
printf("\n");
printpolyn(la);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -