多项式四则运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多项式四则运算
运行图:
源代码:
// 多项式加减乘除-02.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
#include
#include
typedef struct Polynomial
{
float coef;
int expn;
struct Polynomial *next;
}*Polyn,Polynomial;
void Insert(Polyn p,Polyn h)
{
if(p->coef==0)
free(p);
else
{
Polyn q1,q2;
q1=h;
q2=h->next;
while(q2&&p->expn
{
q1=q2;
q2=q2->next;
}
if(q2&&p->expn==q2->expn)
{
q2->coef+=p->coef;
free(p);
if(!q2->coef)
{
q1->next=q2->next;
free(q2);
}
}
else
{
p->next=q2;
q1->next=p;
}
}
}
Polyn CreatePolyn(Polyn head,int m)
{
int i;
Polyn p;
p=head=(Polyn)malloc(sizeof(struct Polynomial));
head->next=NULL;
for(i=0;i { p=(Polyn)malloc(sizeof(struct Polynomial)); printf("请输入第%d项的系数与指数:",i+1); scanf_s("%f %d",&p->coef,&p->expn); Insert(p,head); } return head; } void DestroyPolyn(Polyn p) { Polyn q1,q2; q1=p->next; q2=q1->next; while(q1->next) { free(q1); q1=q2; q2=q2->next; } } void PrintPolyn(Polyn P) { Polyn q=P->next; int flag=1; if(!q) { putchar('0'); printf("\n"); return; } while (q) { if(q->coef>0&&flag!=1) putchar('+'); if(q->coef!=1&&q->coef!=-1) { printf("%g",q->coef); if(q->expn==1) putchar('X'); else if(q->expn) printf("X^%d",q->expn); } else { if(q->coef==1) { if(!q->expn) putchar('1'); else if(q->expn==1) putchar('X'); else printf("X^%d",q->expn); } if(q->coef==-1) { if(!q->expn) printf("-1"); else if(q->expn==1) printf("-X"); else printf("-X^%d",q->expn); } } q=q->next; flag++; } printf("\n"); } int compare(Polyn a,Polyn b) { if(a&&b) { if(!b||a->expn>b->expn) return 1; else if(!a||a->expn return -1; else return 0; } else if(!a&&b) return -1; else return 1; } Polyn AddPolyn(Polyn pa,Polyn pb) { Polyn qa=pa->next; Polyn qb=pb->next; Polyn headc,hc,qc; hc=(Polyn)malloc(sizeof(struct Polynomial)); hc->next=NULL; headc=hc; while(qa||qb) { qc=(Polyn)malloc(sizeof(struct Polynomial)); switch(compare(qa,qb)) { case 1: { qc->coef=qa->coef; qc->expn=qa->expn;