高阶多项式合并同类项程序c语言,c语言实现两多项式相乘并排序合并同类项.doc...
#includetypedef struct Node
{
int coef;//系数
int exp;//指数
struct Node *next;
}PolyNode;
PolyNode *Creatpoly()//创建多项式的单链表
{
PolyNode *h,*p,*q;
h=(PolyNode *)malloc(sizeof(PolyNode));
p=h;
p->next=NULL;
printf("请输入多项式的系数及其指数a,b,当系数输入0时停止输入\n");
q=(PolyNode *)malloc(sizeof(PolyNode));
scanf("%d,%d",&q->coef,&q->exp);
while(q->coef!=0)
{
p->next=q;
p=q;
q=(PolyNode *)malloc(sizeof(PolyNode));
scanf("%d,%d",&q->coef,&q->exp);
}
p->next=NULL;
return(h);
}
void Prin_poly(PolyNode *h)//将多项式输出函数
{
PolyNode *p;
p=h->next;
while(p!=NULL)
{
if(p->coef>0&&p!=h->next)
{
if(p->exp>0)
printf("+%dx^%d",p->coef,p->exp);
else if(p->exp<0)
printf("+%dx^(%d)",p->coef,p->exp);
else
printf("+%d",p->coef);
}
else if(p->coef<0&&p!=h->next)
{
if(p->exp>0)
printf("%dx^%d",p->coef,p->exp);
else if(p->exp<0)
printf("%dx^(%d)",p->coef,p->exp);
else
printf("%d",p->coef);
}
else
{
if(p->exp>0)
printf("%dx^%d",p->coef,p->exp);
else if(p->exp<0)
printf("%dx^(%d)",p->coef,p->exp);
else
printf("%d",p->coef);
}
p=p->next;
}
}
void Insort(PolyNode *h)//排序函数,使多项式中的各项按X的升幂排列
{
PolyNode *s,*p;
int t,m;
for(p=h->next;p!=NULL;p=p->next)//类似于冒泡排序
{
for(s=h->next;s->next!=NULL;s=s->next)
{
if(s->exp>s->next->exp)
{
t=s->exp;
m=s->coef;
s->coef=s->next->coef;
s->exp=s->next->exp;
s->next->coef=m;
s->next->exp=t;
}
}
}
}
void UnitePoly(PolyNode *h)//合并同类项
{
PolyNode *p1,*p2,*q1,*q2,*temp;
q1=h;
p1=q1->next;
while(p1!=NULL)
{
p2=p1->next;
q2=p1;
while(p2!=NULL)
{
if(p1->exp==p2->exp)
{
p1->coef=p1->coef+p2->coef;
if(p1->coef==0)
{
temp=p2;
q2->next=p2->next;
free(temp);
temp=p1;
q1->next=p1->next;
p1=q1;
free(temp);
break;
}
else
{
temp=p2;
q2->next=p2->next;
p2=p2->next;
free(temp);
}
}
else
{
q2=p2;
p2=p2->next;
}
}
q1=p1;
p1=p1->next;
}
}
PolyNode *polymuti(PolyNode *h1,PolyNode *h2)//多项式相乘
{
PolyNode *h,*p,*p1,*p2,*q;
p1=h1->next;
h=p=(PolyNode *)malloc(sizeof(PolyNode));
p->next=NULL;
while(p1)
{
p2=h2->next;
while(p2)
{
q=(PolyNode *)malloc(sizeof(PolyNode));
q->coef=p1->coef*p2->coef;
q->exp=p1->exp+p2->exp;
p->next=q;
p=q;
p2=p2->next;
}
p1=p1->next;
}
p->next=NULL;
return(h);
}
main()
{
PolyNode *h1,*h2,*h;
h1=Creatpoly();
printf("该多项式为P1(x)=");
UnitePoly(h1);
Insort(h1);
Prin_poly(h1);
printf("\n");
h2=Creatpoly();
printf("该多项式为P2(x)=");
UnitePoly(h2);
Insort(h2);
Prin_poly(h2);
printf("\n");
printf("按任意键查看两多项式相乘结果\n");
getch();
printf("相乘后的多项式为P(x)=");
h=polymuti(h1,h2);
UnitePoly(h);
Insort(h);
Prin_poly(h);
printf("\n");
}
高阶多项式合并同类项程序c语言,c语言实现两多项式相乘并排序合并同类项.doc...相关推荐
- c语言node类型_高阶宏的妙用技法,C语言宏你所不知道的聪明技巧
前言 什么是高阶宏?高阶宏就是以宏为参数的宏.以宏为参数的宏这就是这篇文章的重点.其实业界领先的代码库是有很多值得我们学习的,研究开源库也可以是大家学习的方向哦,通常开源库中90%的内容超出了新手对于 ...
- 高阶系统降阶matlab程序,高阶系统的降阶控制研究
引言近年来,主动控制技术在很多方面都得到了很大的发展,尤其在飞机设计中,这门新技术越来越为人们所重视.但是,对飞机实施主动控制很关键的一个问题就是其实时性,离开实时性,主动控制就没韦现实性可言.计算机 ...
- 高阶多项式合并同类项程序c语言,c语言实现两多项式相乘,并排序,合并同类项.doc...
#include typedef struct Node { int coef;//系数 int exp;//指数 struct Node *next; }PolyNode; PolyNode *Cr ...
- C++学习从基础到高阶(基于黑马程序员教程)
视频链接:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难(52个小时) C语言中文网:http://c.biancheng.net/cplus/ Visual Studio 2022 ...
- 【Kotlin】Kotlin 语言集合中的高阶函数详解 ( 数据类 data class | maxBy | minBy | filter | map | any | count | find )
文章目录 I . List 集合高阶函数引入 II . Kotlin 数据类 ( data class ) III . Java 代码 与 Kotlin 代码实现对比 ( 查询年龄最大的 ) IV . ...
- Python:高阶函数
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python高效技巧(三)---查缺补漏(时间处理、shutill模块、高阶函数、装饰器)
Python高效技巧 前言: 函数 1.可接受任意数量参数的函数和关键词参数 2.匿名函数 lambda 二.其他 1.关于序列的各种方法 2.产生器表达式 三. 查缺补漏 1.时间处理 1. cal ...
- Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊...
函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...
- Python函数式编程简介(一)高阶函数
本文概括介绍Python函数式编程的一些概念及用法,详细请参考: https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df ...
最新文章
- 图形数据库Neo4j基本了解
- OpenCV再升级!修改一行代码,将图像匹配效果提升14%!
- 40张图看懂分布式追踪系统原理及实践
- vivo手机计算机错误怎么弄,手机计算器出错,原因竟是人性化设计
- python进制转化大全
- sql注入-union select
- nfs:client mount成功,但是进入目录时出现Permission denied
- 删除重复数据sql语句
- MacBook 如何一次性关闭所有程序的通知消息
- 基于jsp+mysql+Spring的SpringBoot招聘网站项目(完整源码+sql)主要实现了管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历
- ubuntu卸载fcitx后引发的问题修复
- 获取自Linux上的Epoch以来的当前时间,Bash
- python视频操作:下载、选取特定帧、批量导入ppt及硬字幕提取
- 如何让div靠右_如何实现CSS右对齐
- ZOJ 题目分类以及部分题目简单思路
- android 位移传感器 坐标,一种基于1D位移传感器的三维空间坐标测量方法与流程...
- 彻底搞懂数据库内连接、外连接
- android dlna 服务器,安卓手机DLNA功能使用方法
- 征途服务器文件,如何使用云服务器架设征途
- 微软家族的首个跨平台开发工具 Visual Studio Code
热门文章
- Windows Terminal v0.7 发布:支持分屏、重排选项卡和改进 UI
- 从SQL Server生成文档
- linux的帮助命令有,Linux帮助命令有哪些
- java xms xmx 默认值_JVM启动参数-Xmx的默认值是多少?
- 从其他电脑拷mysql到自己电脑_mysql 数据库复制到其他电脑
- 移动端点击链接元素出现蓝色边框或者出现半透明蓝色背景
- oracle 临时文件 大文件,Oracle中临时文件File#和Db_files关系
- mysql新增表字段回滚_MySql学习笔记四
- 500内部privoxy错误_【热议】喝崂山啤酒中奖500听,却只能兑换500毫升?!
- c语言数组统计条形图,【D3.js数据可视化系列教程】--(十)更自由的条形图