可编辑
不失一般性,设m
P(x)=2x4+5x2+3x+1,Q(x)=3x2+1,相加后R(x)= 2x4+8x2+3x+2,用一维向量表表示分别为(1,3,5,0,2)+(1,0,3,)=(2,3,8,0,2),写成数学形式即为2x4+8x2+3x+2,结论正确。减法模型同加法模型。
具体函数模块的流程图:
功能选择模块: 输入数据函数:
---------------------------------------------------------------------
可编辑
开始 开始 输入各项的指指数系数 输入功能函数对应的数字 判断输入是否合法 调用输出函数 通过switch判断返回哪一个功能函数 显示运行结果 调用该功能函数 结束 结束
求和函数模块:
是 定义存储结果的空链 r 开始
存储多项式1的空链P是否为空 否 --------------------------------------------------------------------- 是 存储多项式2的空可编辑
求差函数模块:
开始 开始
定义存储结果的空链 r 定义存储结果的空链 r 存储多项式1的空链P是否为空 存储多项式1的空链P是否为空 否 否 存储多项式2的空链Q是否为空 2的空存储多项式是 是 --------------------------------------------------------------------- 是 是 可编辑
四、 主要源程序代码
#include
typedef struct duoxiangshi {
int coef; int exp;
struct duoxiangshi *next; }DXS;
int getNum() {
int num;
---------------------------------------------------------------------
可编辑
printf(\输入选择功能对应的数字: \ scanf(\
return num; }
void fun1( DXS *PHEAD, DXS *QHEAD ) {
int zs, xs;//定义指数系数
printf(\请输入P(x)中各项的系数和指数\\n\ scanf(\ while( zs != 0 || xs != 0 )
{
DXS *p = (DXS*) malloc(sizeof(DXS)); p->coef = xs; p->exp = zs;
PHEAD->next = p; p->next = NULL;
PHEAD = PHEAD->next;
scanf(\ }
printf(\请输入Q(x)中各项的系数和指数\\n\ scanf(\ while( zs != 0 ||xs != 0 ) {
DXS *p = (DXS*) malloc(sizeof(DXS)); p->coef = xs; p->exp = zs;
QHEAD->next = p; p->next = NULL; QHEAD = p;
scanf(\ }
printf(\输入5显示结果\\n\ }
void fun2( DXS *PHEAD, DXS *QHEAD )//升幂排序
---------------------------------------------------------------------