基于visual Studio2013解决C语言竞赛题之1091多项式
题目
解决代码及点评
/************************************************************************/
/*
91. 建立两个链表,来表示x幂的两个多项式,链表中的结点有三个字段coef、exp和next,分别表示多项式每项的系数、x的指数及指向下一项的指针。编一程序,按x的降幂输入多项式的系数和指数,建立两个链表,然后编一函数来完成把两个多项式的链表叠加到第三个链表中。例如:
第一个多项式为: -4x8 +5x6 +3x4 -4x的链表为:-4 8 5 6 3 4 -4 1 第二个多项式为: 5x9 -5x8 -3x4 +7x的链表为:5 9 -9 8 5 6 3 1 结果的多项式为: 5x9 -9x8 +5x6 +3x5 9 -9 8 5 6 3 1 */
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>typedef struct student STU;
struct student
{int coef;int exp;struct student * next;
};
STU * Init91()
{STU * p=(STU *)malloc(sizeof(STU));if (p==NULL){return NULL;}elsep->next=NULL;return p;
}
STU * Insert91(STU * head,int coef,int exp)
{ STU * last=head;if (last==NULL){return NULL;}while(last->next!=NULL)last=last->next;STU *p=(STU *)malloc(sizeof(STU));if (p==NULL){return NULL;}else{p->coef=coef;p->exp=exp;last->next=p;p->next=NULL;return p;}
}
void DeleteNode91(STU* pre,STU *cur)
{pre->next=cur->next;free(cur);
}
void printfNodes91(STU *head)
{STU *p=head->next;while(p!=NULL){printf("%2d%2d",p->coef,p->exp);printf("->");p=p->next;}printf("\n");}
STU * GB91(STU * A,STU * B)
{STU *C=Init91();STU *p1=A->next;STU * tempA=A;STU *tempB=B;STU*p2=B->next;STU *temp=NULL;while(p2!=NULL&&p1!=NULL){if (p1->exp>p2->exp){temp=Insert91(C,p1->coef,p1->exp);DeleteNode91(tempA,p1);p1=tempA->next;}else if (p1->exp<p2->exp){temp=Insert91(C,p2->coef,p2->exp);DeleteNode91(tempB,p2);p2=tempB->next;}else{if (p1->coef+p2->coef!=0){temp=Insert91(C,p2->coef+p1->coef,p2->exp);DeleteNode91(tempB,p2);p2=tempB->next;DeleteNode91(tempA,p1);p1=tempA->next;}else{p1=p1->next;tempA=tempA->next;p2=p2->next;tempB=tempB->next;}}}if (p2==NULL){temp->next=p1;}else{temp->next=p2;}return C;}
void main()
{STU * A=Init91();Insert91(A,-4,8);Insert91(A,5,6);Insert91(A,3,4);Insert91(A,-4,1);printfNodes91(A);STU * B=Init91();Insert91(B,5,9);Insert91(B,-5,8);Insert91(B,-3,4);Insert91(B,7,1);printfNodes91(B);printfNodes91(GB91(A,B));system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn
转载于:https://www.cnblogs.com/new0801/p/6177395.html
基于visual Studio2013解决C语言竞赛题之1091多项式相关推荐
- 基于visual Studio2013解决C语言竞赛题之1085相邻之和素数
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1081shell排序
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1027 YN
题目 解决代码及点评 /*计算Yn的值,直到|Yn - Yn-1|<10-6为止,并打印出此时共作了多少次COS计算. 提示:Yn+1=COS(Yn),故本题 ...
- 基于visual Studio2013解决C语言竞赛题之1089牛虎过河
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1070删除相同节点
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之0502最小数替换
题目 解决代码及点评 /************************************************************************/ ...
- 判断同构数 c语言,基于visual Studio2013解决C语言竞赛题之0413同构数
JQuery的基础和应用 1.什么是? DOM的作用:提供了一种动态的操作HTML元素的方法. jQuery是一个优秀的js库.用来操作HTML元素的工具. jQuery和DOM . ...
- 基于visual Studio2013解决C语言竞赛题之0710排序函数
题目 解决代码及点评 /* 10.用指向指针的指针的方法对N个整数排序并输出. 要求排序单独写成一个函数.N个整数和N在主程序中输入,最后在主函数中输出. */ #include <std ...
- 基于visual Studio2013解决C语言竞赛题之1049抓牌排序
题目 解决代码及点评 /* 功能:插入排序.许多玩牌的人是以这样的方式来对他们手中的牌进行排序的:设手中原有3张牌已排好序,抓1张新牌,若这张新牌的次序在原来的第2张牌之后,第3张牌 ...
最新文章
- 8.0系统安装Xposed框架失败Xposed framework version XX is installed
- 一个学机械的毕业生令中国人无法安眠的帖子
- ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
- This dependency was not found: * !!vue-style-loader!css-loader?……解决方案
- c++ stl队列初始化_声明,初始化和访问向量| C ++ STL
- ARM 汇编语言入门
- 《运营之光》-- 学习笔记(二)
- php secket5,《Thinkphp5使用Socket服务》 入门篇
- 逆向工程mysql注释_PowerDesigner 15进行逆向工程生成数据库图表时,注释的comment的生成,解决PowerDesigner逆向工程没有列注释...
- moss form验证 配置文件关键部分
- 图解设计模式(23种)
- 阿里视频播放vodPlayer.setMuteMode(true) 设置静音失效的解决办法
- react视频播放组件ReactPlayer基本使用
- mql5计算机语言函数库,MQL5 函数列表 - MQL5参考 - 参考MetaTrader 5的算法/自动交易语言...
- Python利用requests库爬取百度文库文章
- Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)
- linux的炒股软件“全胜”
- 科普:蓝绿部署、金丝雀发布(灰度发布)、A/B测试
- Go/Goland 开发笔记
- OK6410A移植mw150us无线网卡驱动
热门文章
- 巩膜(眼白)灰色原因
- kafka的offset笔记
- Error:scalac: Error: scala.collection.immutable.$colon$colon.tl$1()Lscala/collection/immutable/List;
- java.lang.NumberFormatException: For input string: “xxxx.“
- ubuntu系统中root的2种pip路径
- linux下面的浏览器不停自动打开新网页
- KNN针对中文文本分类
- 5.2 最优近似解 $\mathbf{\hat{x}} = A^{-1}_L\mathbf{b}$ 是最小二乘解
- ajax存储过程,jQuery-AJAX将下拉列表重新绑定到存储过程的结果
- JEPaas代码((列表,表单)确认入库按钮