多项式乘法c语言,急!!!!c语言:求n次多项式的加法和乘法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
if(s->data.coef!=0.0)
{
s->data.expn=p->data.expn;
r->next=s;
r=s;
}
p=p->next;
q=q->next;
break;
case 1:
s->data.coef=q->data.coef;
s->data.expn=q->data.expn;
r->next=s;
r=s;
q=q->next;
break;
}//switch
}//while
/*if(p!=NULL)
r->next=p;
else
if(q!=NULL)
r->next=q;
else
r->next=NULL;*/ //这样不行,q,p为局部变量,传不到主函数中去
while(p)
{
s=(LNode*)malloc(sizeof(LNode));
s->data.coef=p->data.coef;
s->data.expn=p->data.expn;
r->next=s;
r=s;
p=p->next;
}
while(q)
{
s=(LNode*)malloc(sizeof(LNode));
s->data.coef=q->data.coef;
s->data.expn=q->data.expn;
r->next=s;
r=s;
q=q->next;
}
r->next=NULL;
for(q=newp->next;q->next!=NULL;q=q->next)//合并同类项
for(p=q;p!=NULL&&p->next!=NULL;p=p->next)
if(q->data.expn==p->next->data.expn)
{
q->data.coef=q->data.coef+p->next->data.coef;
r=p->next;
p->next=p->next->next;
free(r);
}
return newp;
}
/*3、两多项式相减*/
polynomail subpolyn(polynomail pa,polynomail pb)
{
polynomail s,newp,q,p,r,Q;
p=pa->next;q=pb->next;
newp=(LNode*)malloc(sizeof(LNode));
r=newp;
while(p&&q)
{
s=(LNode*)malloc(sizeof(LNode));
switch(cmp(p->data,q->data))
{
case -1:
s->data.coef=p->data.coef;
s->data.expn=p->data.expn;
r->next=s;
r=s;
p=p->next;
break;
case 0:
s->data.coef=p->data.coef-q->data.coef;
if(s->data.coef!=0.0)
{
s->data.expn=p->data.expn;
r->next=s;
r=s;
}
p=p->next;
q=q->next;
break;
case 1:
s->data.coef=-q->data.coef;
s->data.expn=q->data.expn;
r->next=s;
r=s;
q=q->next;
break;
}//switch
}//while
while(p)
{
s=(LNode*)malloc(sizeof(LNode));
s->data.coef=p->data.coef;
s->data.expn=p->data.expn;
r->next=s;
r=s;
p=p->next;
}
while(q)
{
s=(LNode*)malloc(sizeof(LNode));
s->data.coef=-q->data.coef;
s->data.expn=q->data.expn;
r->next=s;
r=s;
q=q->next;
}
r->next=NULL;
if(newp->next!=NULL&&newp->next->next!=NULL)//合并同类项
{
for(q=newp->next;q!=NULL;q=q->next)
for(p=q->next,r=q;p!=NULL;)
if(q->data.expn==p->data.expn)
{
q->data.coef=q->data.coef+p->data.coef;
r->next=p->next;
Q=p;p=p->next;
free(Q);
}
else
{
r=r->next;
p=p->next;
}
}
return newp;
}
/*4、销毁已建立的两个多项式*/
void delpolyn(polynomail pa,polynomail pb)
{
polynomail p,q;
p=pa;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
p=pb;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
printf("两个多项式已经销毁\n");
}
void main()
{
polynomail pa=NULL,pb=NULL;
polynomail addp=NULL,subp=NULL,p,q;
int n,m;
char sign='y';
printf("1、创建两个一元多项式\n");
printf("2、两多项式相加得一新多项式\n");
printf("3、两多项式相减得一新多项式\n");
printf("4、销毁已建立的两个多项式\n");
printf("5、退出\n");
printf("\n");
while(sign!='n')
{
printf("请选择:");
scanf("%d",&n);
switch(n)
{
case 1:
if(pa!=NULL)
{
printf("已建立两个一元多项式,请选择其他操作!");
break;
}
printf("请输入第一个多项式:\n");
printf("要输入几项:");
scanf("%d",&m);
while(m==0)
{
printf("m不能为0,请重新输入m:");
scanf("%d",&m);
}
pa=creatpolyn(pa,m);
printpolyn(pa);
printf("请输入第二个多项式:\n");
printf("要输入几项:");
scanf("%d",&m);
pb=creatpolyn(pb,m);
printpolyn(pb);
break;
case 2:
if(pa==NULL)
{
printf("请先创建两个一元多项式!\n");
break;
}
addp=addpolyn(pa,pb);
printpolyn(addp);
break;
case 3:
if(pa==NULL)
{
printf("请先创建两个一元多项式!\n");
break;
}
subp=subpolyn(pa,pb);
printpolyn(subp);
break;
case 4:
if(pa==NULL)
{
printf("请先创建两个一元多项式!\n");
break;
}
delpolyn(pa,pb);
pa=pb=NULL;
break;
case 5:
if(addp!=NULL)
{
p=addp;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
}
if(subp!=NULL)
{
p=subp;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
}
exit(-2);
}//switch
}//while
}
多项式乘法c语言,急!!!!c语言:求n次多项式的加法和乘法相关推荐
- 多项式加法c语言数组解,急!!!!c语言:求n次多项式的加法和乘法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 if(s->data.coef!=0.0) { s->data.expn=p->data.expn; r->next=s; r=s ...
- C语言多项式乘法模拟,急!!!!c语言:求n次多项式的加法和乘法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 if(s->data.coef!=0.0) { s->data.expn=p->data.expn; r->next=s; r=s ...
- c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 if(s->data.coef!=0.0) { s->data.expn=p->data.expn; r->next=s; r=s ...
- c语言中加法和乘法的消耗,急!!!!c语言:求n次多项式的加法和乘法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 if(s->data.coef!=0.0) { s->data.expn=p->data.expn; r->next=s; r=s ...
- C语言链表怎么合并同类项,急!!!!c语言:求n次多项式的加法和乘法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 if(s->data.coef!=0.0) { s->data.expn=p->data.expn; r->next=s; r=s ...
- java蓝桥杯加法变乘法_蓝桥杯-加法变乘法-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- 简单借还书管理系统c语言,急求程序!!!简单图书馆借/还书管理子系统
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 项目需求 通过此系统可以实现如下功能 1)完成对读者.书的基本信息以及借/还书的信息进行插入.删除.修改.保存等编辑功能: 2)书的库存量随着借/还书的情 ...
- 图书馆借还系统C语言,急求程序!!!简单图书馆借/还书管理子系统
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 项目需求 通过此系统可以实现如下功能 1)完成对读者.书的基本信息以及借/还书的信息进行插入.删除.修改.保存等编辑功能: 2)书的库存量随着借/还书的情 ...
- 图书馆还书系统c语言,急求程序!!!简单图书馆借/还书管理子系统
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 项目需求 通过此系统可以实现如下功能 1)完成对读者.书的基本信息以及借/还书的信息进行插入.删除.修改.保存等编辑功能: 2)书的库存量随着借/还书的情 ...
最新文章
- 二叉树-二叉树的最大深度(递归 )
- 在Flex控件中使用XMLListCollection
- nconf创建nagios实例
- 101PPT游戏化换肤遇到的问题
- VForum 2008系列之三:分论坛视频-实现自动化的虚拟数据中心
- 等你Battle!——11万个真实场景配置,用AI为车主答疑解惑
- 如何估算Oracle数据库所需的UNDO表空间的大小
- python init函数_在Python中解释类__init __()函数内部和外部的变量。
- 栈计算机术语,计算机数据结构词汇中英对照
- 知乎高赞:有哪些值得刻意练习的心态?
- TypeScript 类(Classes)
- Django框架 day02
- Android自动化测试工具—Monkey简介及入门
- 经典测试用例--水杯测试
- 美的董事长:数字化每年投几十亿,看不见结果我也焦虑
- MyBatis学习总结——调用存储过程
- 合宙Air105|Socket|UDP |TCP/IP|W5500|Serial 串口|透传|DTU|网络测试助手|双机互联|内网测试|官方demo|学习(8-3):Socket网络接口-双机互联透传
- Python运维之 Flask + 宝塔运行小应用
- Openerp部分学习资料
- static 控件设置成透明后无法正常更新数据_win10又发布10月更新,提升视频体验,解决闪屏和打印问题...
热门文章
- python笔记基础-Python学习笔记(基础)
- python跟java-还在纠结选Python还是Java?看完就有数了
- python中的format什么意思中文-python里format什么意思
- 怎么学python-如何系统的学习python?
- python语言教程-python基础教程
- python处理excel视频-从零基础开始用Python处理Excel数据 视频教程
- python3项目-把项目从Python2.x移植到Python3.x的经验总结
- python pandas读取excel-python pandas 读取文件 写入文件excel
- python中的h5py开源库的使用
- DuckChat聊天系统PHP,部署自己的聊天系统 DuckChat(鸭信)仿微信 PHP源码