一元多项式加减乘除运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国计量学院实验报告

实验课程:算法与数据结构实验名称:一元二项式班级:学号:

姓名:实验日期: 2013-5-7

一.实验题目:

①创建2个一元多项式

②实现2个多项式相加

③实现2个多项式相减

④实现2个多项式相乘

⑤实现2个多项式相除

⑥销毁一元多项式

实验成绩:指导教师:

二.算法说明

①存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储

空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。

②加法算法

三.测试结果

四.分析与探讨

实验数据正确,部分代码过于赘余,可以精简。

五.附录:源代码

#include<>

#include<>

#include<>

typedef struct Polynomial

{

float coef;

int expn;

struct Polynomial *next;

}*Polyn,Polynomial;

出多项式a和b\n\t2.多项式相加a+b\n\t3.多项式相减a-b\n");

printf("\t4.多项式相除a*b\n\t5.多项式相除a/b\n\t6.销毁多项式\n");

printf("\t7.退出\n*********************************** ***********\n");

printf("执行:");

scanf("%d",&flag);

switch(flag)

{

case(1):

printf("多项式a:");PrintPolyn(pa); printf("多项式b:");PrintPolyn(pb);break;

case(2):

pc=AddPolyn(pa,pb);

printf("多项式a+b:");PrintPolyn(pc);

DestroyPolyn(pc);break;

case(3):

pd=SubtractPolyn(pa,pb);

printf("多项式a-b:");PrintPolyn(pd);

DestroyPolyn(pd);break;

case(4):

pf=MultiplyPolyn(pa,pb);

printf("多项式a*b:");PrintPolyn(pf);

DestroyPolyn(pf);break;

case(5):

DevicePolyn(pa,pb);

break;

case(6):

DestroyPolyn(pa);

DestroyPolyn(pb);

printf("成功销毁2个一元二项式\n");

printf("\n接下来要执行的操作:\n1 重新创建2个一元二项式 \n2 退出程序\n");

printf("执行:");

scanf("%d",&i);

if(i==1)

{

// Polyn

pa=0,pb=0,pc,pd,pf;//定义各式的头指

针,pa与pb在使用前付初值NULL

printf("请输入a的项数:");

scanf("%d",&m);

pa=CreatePolyn(pa,m);//

建立多项式a

printf("请输入b的项数:");

scanf("%d",&n);

pb=CreatePolyn(pb,n);//

建立多项式b

break;}

if(i==2)

return 0;

case(7):

return 0;

}

}

}

}

相关文档
最新文档