📄 2-1.cpp
字号:
#include<stdio.h>
#include<malloc.h>
typedef struct
{
float coef;
int expn;
}term;
typedef struct lnode
{
term data;
struct lnode *next;
}lnode,*linklist;
typedef linklist polynomial;
void creatpolyn(polynomial &a,int n)
{
a=(polynomial)malloc(sizeof(lnode));
polynomial h,s;
h=a;
h->data.coef=0.0;
h->data.expn=-1;
for(int i=1;i<=n;i++)
{
s=(polynomial)malloc(sizeof(lnode));
printf("请输入第""%d""项的系数\n",i);
scanf("%f",&s->data.coef);
printf("请输入第""%d""项的指数\n",i);
scanf("%d",&s->data.expn);
s->next=NULL;h->next=s;h=s;
}
}
void print(polynomial &p)
{
polynomial q=p->next;
while(q!=NULL)
{
printf("%.2fX^%d",q->data.coef,q->data.expn);
printf("+");
q=q->next;
}
printf("\n");
}
void sub(polynomial &pa,polynomial &pb,polynomial &pc)
{
float sub;
term a,b;
polynomial qa,qb,qc,s;
pc=(polynomial)malloc(sizeof(lnode));
qa=pa->next;
qb=pb->next;
qc=pc;
while(qa&&qb)
{
a=qa->data;b=qb->data;
if(a.expn<b.expn)
{
s=(polynomial)malloc(sizeof(lnode));
s->data.coef=a.coef;
s->data.expn=a.expn;
qc->next=s;
qc=s;
qa=qa->next;
}
else if(a.expn=b.expn)
{
sub=a.coef-b.coef;
if(sub==0)
{
qa=qa->next;
qb=qb->next;
}
else
{
s=(polynomial)malloc(sizeof(lnode));
s->data.coef=sub;
s->data.expn=a.expn;
qc->next=s;
qc=s;
qa=qa->next;
qb=qb->next;
}
}
else if(a.expn>b.expn)
{
s=(polynomial)malloc(sizeof(lnode));
s->data.coef=-b.coef;
s->data.expn=b.expn;
qc->next=s;
qc=s;
qb=qb->next;
}
}
while(qa)
{
s=(polynomial)malloc(sizeof(lnode));
s->data.coef=qa->data.coef;
s->data.expn=qa->data.expn;
qc->next=s;
qc=s;
qa=qa->next;
}
while(qb)
{
s=(polynomial)malloc(sizeof(lnode));
s->data.coef=-qb->data.coef;
s->data.expn=qb->data.expn;
qc->next=s;
qc=s;
qb=qb->next;
}
qc->next=NULL;
}
void main()
{
polynomial pa,pb,pc;
int n,m;
printf("请输入第一个多项式的项数:\n");
scanf("%d",&n);
creatpolyn(pa,n);
printf("原多项式pa为:\n");
print(pa);
printf("请输入第二个多项式的项数:\n");
scanf("%d",&m);
creatpolyn(pb,m);
printf("原多项式pb为:\n");
print(pb);
sub(pa,pb,pc);
printf("两项式相减的结果是:\n");
print(pc);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -