一元多项式的加减以及求导

 采用链式存储结构,将两个线性链表表示的一元多项式相加减,求导并输出。

#include<stdio.h>

 #include<stdlib.h>
 typedef struct lnode
 {
  int coef;  //系数 
  int index; //指数
struct lnode *next; 
 }node;
 node *Create()      //头插法建立一元多项式
 {
  node *p1,*p2,*head;
  int x,y,i = 1;
  head = (node *)malloc(sizeof(node));
  head->next = NULL;
  p1 = head;
  p2 = head;
  for(i=1; ; i++)
  {
  p2 = (node *)malloc(sizeof(node));
  printf("输入第%d项的系数,指数:",i);
  scanf("%d%d",&x,&y);
  if(x==0 && y==0)            //输入0 0时表示输入完成 
  {
  break; 
}
if(x == 0)
{
continue;
}
  p2->coef = x;
  p2->index = y;
  p2->next = p1->next;
  p1->next = p2;


}
return head;
 }
 void Sort (node *head)             //将多项式中相同指数的项合并 
 {
  node *p,*q,*p1;
  for(p = head->next;p->next!=NULL;p = p->next)
  {
  for(q = p;q->next!=NULL;q=q->next)
  {
  if(p->index == q->next->index)
  {
  p->coef = p->coef + q->next->coef;    //相同指数的项合并 
  q->next->coef = 0;
  q->next->index = 0;
}
}
}
p = head;
q = p;
while(q->next!=NULL)
{
p1 = q;
q = q->next;
if(q->coef==0 && q->index==0)
{
p1->next = q->next;
free(q);
q = p1;
}
}
 }
 int Print(node *head)          //打印函数 
 {
  node *p;
  int x,y;
  if(head->next == NULL)
  return 0;
else
  p = head->next;
  while(p->next != NULL)
  {
if(p->index == 0)
{
printf("%d+",p->coef);
}
else if(p->next->coef<0)
{
printf("%dx^%d",p->coef,p->index);
}
else
{
  printf("%dx^%d+",p->coef,p->index);
  }
p = p->next;
}
if(p->index == 0)
{
printf("%d\n",p->coef);
}
else
{
  printf("%dx^%d\n",p->coef,p->index);
  }
return 1;
 }
 void Plus(node *head1,node *head2)          //多项式相加 
 {
  node *p,*q,*p1;
  p = head1;
  q = head2;
  for(p = head1->next;p!=NULL;p = p->next)
  {
  for(q = head2->next;q!=NULL;q = q->next)
  {
  if(p->index == q->index)       // //相同指数的项合并 
  {
  p->coef = p->coef + q->coef;
  q->coef = 0;
  q->index = 0;
}
}
}
for(q = head2->next;q!=NULL;q = q->next)
{
if(q->coef!=0 && q->index!=0)         //将第二个多项式中与第一个多项式指数不同的项 添加入第一个多项式 
{
p1 = (node *)malloc(sizeof(node));
p1->coef = q->coef;
p1->index = q->index;
p1->next = head1->next;
head1->next = p1;
}
}
Print(head1);
 }
 void Minus(node *head1,node *head2)         // 多项式相加(同相减) 
 {
  node *p,*q,*p1;
  p = head1;
  q = head2;
  for(p = head1->next;p!=NULL;p = p->next)
  {
  for(q = head2->next;q!=NULL;q = q->next)
  {
  if(p->index == q->index)
  {
  p->coef = p->coef - q->coef;
  q->coef = 0;
  q->index = 0;
}
}
}
for(q = head2->next;q!=NULL;q = q->next)
{
if(q->coef!=0 && q->index!=0)
{
p1 = (node *)malloc(sizeof(node));
p1->coef = 0-q->coef;
p1->index = q->index;
p1->next = head1->next;
head1->next = p1;
}
}
Print(head1);
 }
 void derivative(node *head)    //求多项式的导数 
 {
  node *p;
  p = head->next;
  while(p!=NULL)
  {
  p->coef = p->coef*p->index;
  p->index = p->index-1;
  p = p->next;
}
printf("多项式的导数为:");
Print(head);
 }
 int main()
 {
  node *head1,*head2,*head;
  int x;
  printf("输入第一个多项式的系数,指数(输入0 0时结束输入):\n");
  head1 = Create();
  Sort(head1);
Print(head1);
printf("输入第二个多项式的系数,指数(输入0 0时结束输入):\n");
  head2 = Create();
  Sort(head2);
Print(head2);
printf("选择运算:");
scanf("%d",&x);
switch(x)
{
case 1:derivative(head1);break;
case 2:derivative(head2);break;
case 3:Plus(head1,head2);break;
case 4: Minus(head1,head2);break;
}
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 驱动表提示错误代码,oracle驱动表以及如何确定驱动表

驱动表普遍认为是由SQL语句的写法决定的&#xff0c;简单的说&#xff0c;就是FROM语句后面的表列表中的最后一个。由于SQL语句是从后向前进行分析&#xff0c;Oracle会根据FROM语句从后到前将各个表依次连接起来。SQL> CREATE TABLE T1 AS SELECT * FROM USER_TABLES;表已创…

sqlite 0转换为bit_Cisco Talos在SQLite中发现了一个远程代码执行漏洞

思科Talos的研究人员在SQLite中发现了一个use-after-free() 的漏洞&#xff0c;攻击者可利用该漏洞在受影响设备上远程执行代码。攻击者可以通过向受影响的SQLite安装发送恶意SQL命令来触发此漏洞。“Sqlite3 3.26.0的窗口函数&#xff08;Window_Function&#xff09;中存在可…

构建未来情报体系—— AI及大数据时代情报分析人员的战略价值

知远战略与防务研究所 沐俭/编译来自&#xff1a;美国战略与国际问题研究中心网站【知远导读】本篇推送编辑节选自美国战略与国际问题研究中心&#xff08;CSIS&#xff09;技术与情报专项研究小组撰写的一篇利用新兴科技提高情报分析人员的战略情报分析能力的文章&#xff0c;…

B1015/A1062 . 德才论 (25)

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”&#xff1a;“是故才德全尽谓之圣人&#xff0c;才德兼亡谓之愚人&#xff0c;德胜才谓之君子&#xff0c;才胜德谓之小人。凡取人之术&#xff0c;苟不得圣人&#xff0c;君子而与之&#xff0c;与其得小人&#xff0…

给matlab图加图注,matlab学习5-数据可视化4-gai.ppt

matlab语言丰富的图形表现方法&#xff0c;使得数学计算结果可以方便地、多样性地实现了可视化&#xff0c;这是其它语言所不能比拟的。;第一节 符号函数绘图第二节 图形编辑第三节 2D数据图第四节 3D数据图第五节 MATLAB的视图功能第六节 图像、视频和声音;plot —— 最基本的…

中国的自动驾驶到底发展到了什么程度?

来源&#xff1a;面包板社区中国在自动驾驶汽车&#xff08;AV&#xff09;领域投入了大量资金&#xff0c;计划大力发展汽车工业这一新兴领域&#xff0c;包括技术、初创企业、测试、法律法规和部署等各个方面。图1&#xff1a;在百度世界2020大会上&#xff0c;百度展示了其全…

数据挖掘算法_技术分享|大数据挖掘算法之KNNk近邻算法

程一舰数据技术处K最近邻(kNN&#xff0c;k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻&#xff0c;就是k个最近的邻居的意思&#xff0c;说的是每个样本都可以用它最接近的k个邻居来代表。KNN是通过测量不同特征值之间的距离进行分类。其基本…

漂亮的树

街上有n棵树&#xff0c;标号为1...n&#xff0c;第i棵树的高度为ai。定义这n棵树是漂亮的&#xff0c;当且仅当1. 对于所有的i&#xff0c;aian-i1&#xff1b;2. 对于1 < i < n / 2 (不是整除)&#xff0c;ai 1 ai 1&#xff1b;比如说 “2 3 4 5 5 4 3 2”和“1 2 3…

1012 The Best Rank (25)

题目描述: To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C - C Programming Language, M - Mathematics (Calculus or Linear Algrbra), and E - English. At the mean time, we encourage students …

岩板铺地好吗_别人都说岩板好,我笑他人乐太早

若说岩板是陶瓷行业目前最火爆的产品&#xff0c;相信没有人会睁眼说瞎话表示反对。据统计&#xff0c;目前国内已建成的岩板生产线已有55条&#xff0c;计划在下半年建成/投产的岩板生产线已有17条。照此势头发展下去&#xff0c;国内岩板生产线的条数在2021年将逼近100条&…

人工智能和自然智能能否交汇?李飞飞对话斯坦福神经生物学教授Bill Newsome

作者&#xff1a;SHANA LYNCH机器之心编译编辑&#xff1a;张倩计算在神经科学中扮演了什么角色&#xff1f;在分子水平上理解大脑能否带来更好的神经网络&#xff1f;人工智能和自然智能之间是否存在一道无法逾越的鸿沟&#xff1f;会不会出现一个研究智能的统一框架&#xff…

php对学历要求较低,学历低学起php来难不难-PHP问题

首先大家要明白一点&#xff0c;你的学历和学习php的难易度的关系是不大的。php本身就有着简单、易学、易上手的优点&#xff0c;对于新手来说非常友好&#xff0c;所以完全不用担心这个问题。学习php&#xff0c;包括任何其他变成语言&#xff0c;在于你的态度、努力程度&…

spring(三)-事务管理

1、 Spring事务管理 事务管理&#xff1a;本质是使用spring管理事务&#xff0c;完成数据库对于事务的支持。 事务&#xff1a;一系列对数据库操作的集合&#xff0c;一个操作错误&#xff0c;所有都必须回滚&#xff0c;其特点是acid。 &#xff08;1&#xff09;事务并发存在…

2017年网易校招题 解救小易

题目描述 有一片1000*1000的草地&#xff0c;小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易&#xff0c;他手里有n个陷阱。第i个陷阱被安置在横坐标为xi &#xff0c;纵坐标为yi 的位…

oracle数据库的拼接字符串,Oracle数据库拼接字符串

Ora-03113&bsol;Ora-03114与Oracle In 拼接字符串的问题刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将近两年的时间,对SqlServer相对来说很熟悉,比较而言,Oracle真心很 ...oracle 数据库 分割字符串返回结果集函数…

思科nat配置实例_Cisco ASA 5520(8.2.4)配置企业内网案例

思科防火墙ASA5520 外观网络拓扑图如下内网 网段 192.168.2.0/24公网IP地址 118.25.235.100公网IP地址网关:118.25.235.1.1防火墙内网IP:192.168.2.1/24配置步骤&#xff1a;1、基本配置及配置内外网接口conf thostname ASAFW #设置主机名enable secret pass123 #设置特权密码c…

刘伟:什么是智能人机交互?

本文来自刘伟科学网博客北京邮电大学 刘伟这是一个非常有趣的问题&#xff0c;既涉及智能又牵扯人机交互&#xff0c;更重要的是两者之间的联系。如果把人机交互看成脖子以下&#xff0c;即生理与物理之间的相互作用&#xff08;如视域、听域、可达域、舒适域&#xff09;的话&…

下学期第三次作业——SQA计划和验收测试规程设计

一、SQA计划 1.目的 在做云医院这个项目中&#xff0c;严格遵循SQA的计划&#xff0c;确保软件的质量的到保证 2.范围 随着项目的进行&#xff0c;不断的去改变计划&#xff0c;在项目开发的整个生命周期内。 3.人员分工 姓名角色开始时间预计工作量&#xff08;天&#xff09;…

ipython版本_使用pyenv切换版本后ipython无法使用解决方法

请务必认真阅读和理解本《免责声明及用户隐私协议》(以下简称《协议》)中规定的所有权利和限制。除非您接受本《协议》条款&#xff0c;否则您无权下载、安装或使用本”软件”、“文章”及其相关免费服务。您一旦阅读、使用、复制、下载、访问或以其它方式使用本站任意文章作品…

警方建立了一个人工智能来预测暴力犯罪,它有严重缺陷

来源&#xff1a;机器学习研究组订阅号在英国&#xff0c;有一个被称为“最严重暴力”&#xff08;简称MSV&#xff0c;即Most Serious Violence&#xff09;的预测系统&#xff0c;这个预测系统归属于国家数据分析解决方案&#xff08;NDAS&#xff09;项目。过去两年&#xf…