数据结构课程设计报告(大整数的运算)

合集下载

数据结构课程设计实践报告大整数加法

数据结构课程设计实践报告大整数加法

数据结构课程设计实践报告大整数加法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

本文下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Downloaded tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The documentscan be customized and modified after downloading, please adjust and use it accordingto actual needs, thank you!In addition, our shop provides you with various types of practical materials, suchas educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!第一节。

长整数的代数计算----数据结构课程设计

长整数的代数计算----数据结构课程设计

沈阳航空航天大学课程设计报告课程设计名称:数据结构课程设计课程设计题目:长整数的代数计算院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:沈阳航空航天大学课程设计报告目录1 题目介绍和功能要求 (1)1.1题目介绍 (1)1.2功能要求 (1)1.3基本功能 (1)2 系统功能模块结构图 (2)2.1系统功能结构框图 (2)2.2系统主要模块的功能说明 (2)3 使用的数据结构的描述 (4)3.1数据结构设计 (4)3.2数据结构用法说明 (4)4 函数的描述 (5)4.1主要函数设计 (5)4.2主要函数流程图 (6)5程序测试和运行的结果 (11)5.1程序测试 (11)5.2运行结果 (12)6参考文献 (14)附录(关键部分程序清单) (15)沈阳航空航天大学课程设计报告1 题目介绍和功能要求1.1 题目介绍设计数据结构完成长整数的表示和存储,并编写算法来实现两个长整数的加、减、乘、除等基本代数运算。

1.2 功能要求1) 长整数长度在一百位以上。

2)实现两长整数在同余代数下的加、减、乘、除操作。

即实现算法来求解a+b mod n,a-b mod n,a*b mod n,a\b mod n。

3)输入输出均在文件中。

(选作)1.3 基本功能1.jiafa();将一百位以上的长整数进行加法运算,计算出和。

2.jianfa();将一百位以上的长整数进行减法运算,计算出差。

3.chenfa();将一百位以上的长整数进行乘法运算,计算出积。

4.chufa();将一百位以上的长整数进行除法运算,计算出商和余数。

2 系统功能模块结构图2.1 系统功能结构框图图2.1 系统功能结构框图2.2 系统主要模块的功能说明1.主模块kongzhi();控制输入模块、加法模块、减法模块、乘法模块、除法模块、输出模块的循环使用。

2.输入模块shuru();将输入的两组长整数分别通过转换将其转换成所需要的形式存储到两个链表(opr1、opr2)中保存起来。

数据结构课程设计长整数加减运算

数据结构课程设计长整数加减运算

课程名称数据结构课程设计题目长整数加减运算一、需求分析设计一个实现任意长的整数间进行四则运算的程序,要求完成长整数的加运算和减运算。

长整数的长度没有限制,可以是任意长。

正确处理好运算之后的进位和借位。

(1)输入:[-]**,****,****;[-]*,****,****,**** //[-]表示“-”可选(2)输出:**,****,****,****是否继续计算(Y/N):(3)功能:能正确进行相关数据的加减运算(4)测试数据:0;0;输出“0”2345,6789;7654,3211;输出“1,0000,0000”1,0000,0000,0000;-9999,9999;输出“9999,0000,0001”1,0001,00001;-1,0001,0000;输出“0”自选数据二、概要设计1、使用双向循环链表实现长整数的运算及存储,构造双向循环链表,创建双向循环链表表示两个整数2、设计两整数相加的函数Add(),addtwo(),其中Add()调用addtwo()函数,addtwo()具体实现两个整数的加减操作,进位及借位问题;设计显示函数Display()及主函数main()三、详细设计1、数据结构设计双向循环链表的构造t ypedef struct LinkNode{int data; //记录每个节点的整数(小于)LinkNode *next, *pre; //记录下一个节点的地址和前一个节点的地址}linklist;2、创建两个长整数的链表伪算法void Creat(char a[]) //引入字符串,创立两个链表,分别表示两个整数{int 记录字符串i;记录加数节点数j;记录被加数节点数s;标记字符串中的‘-’号记录字符串中的字符转化为整数的值k,使每个节点记录位l while(指针所指不是“;”)被加数字符数m自动加1 //m记录字符串中被加数的字符数n=m;while(执政没有指到结尾处) 总字符串n位数自动加1; //n记录字符串的总字符数if被加数不是负数{head0->data=(-1); //记录整数符号w=1;}else {head0->data=1;}for(i=m-1;i>=w;i--){If指针所指为数字,而不是“,” //把字符转化为整数{k+=(a[i]-'0')*sum(l); //sum()计算的乘方l++;}if(a[i]==','||i==w){把整数存到双向循环链表中s++; //节点数加k=0; //重新初始化k和ll=0;}}head0->pre->data*=s; //存储整数符号和节点数}四、调试分析a、调试过程中,连续输入数字运算,速度会明显变慢,发现在初始化链表及运算后没有释放链表,造成系统资源浪费,经改造后自爱后面添加了析构函数b、算法的时空分析创建整数链表有三个循环,次数都为n。

毕业设计-设计并实现大整数(超过十位的整数)的加减乘除运算

毕业设计-设计并实现大整数(超过十位的整数)的加减乘除运算

目录第1章课题概述 (1)1.1课题的目的 (1)1.2课题的要求 (1)1.2.1 输入输出的要求 (1)1.2.2 程序实现的功能要求 (1)第2章概要设计 (3)2.1整个程序的模块结构及流程 (3)2.2大整数存储结构的选择 (3)2.3输入数据合法性的检测及初步处理 (4)2.4各个操作算法的描述 (5)2.4.1 相加算法 (5)2.4.2 相减算法 (7)2.4.3 相乘算法 (8)2.4.4 相除算法 (10)第3章程序功能的实现 (16)3.1主函数的实现 (16)3.2主要功能模块的实现 (18)3.2.1 加法的实现 (18)3.2.2 减法的实现 (19)3.2.3 乘法的实现 (22)3.2.4 除法的实现 (23)第4章调试及发现问题的解决 (29)第5章程序测试及分析 (31)第6章总结 (37)参考文献 (39)第1章课题概述本次数据结构课程设计的题目是设计并实现大整数(超过十位的整数)的加减乘除运算。

1.1 课题的目的整数的加减乘除运算是日常生活中常见的四则数学运算。

在不借助计算器的手工条件下,人们往往会通过列竖式的形式来计算结果。

当借助计算机来运算时,虽然不用列竖式那么麻烦了,但是由于计算机对于整数的存储往往只有2B或4B 的空间,因此能够表示的整数存储范围比较有限。

即使采用四个字节来存储整数,它所能表示的范围为:[-2147483648,+2147483647]。

一般称超过十位以上的十进制整数为大整数,这类大整数在C语言系统中因超界溢出,是不能直接用基本数据类型来表示和计算的。

因此,采用特定的数据结构和算法,通过编写计算机程序的方式来实现这些功能,无疑具有较大的实际意义。

1.2 课题的要求1.2.1 输入输出的要求(1)程序运行后应首先输出一个主菜单,并将所有的加、减、乘、除等功能罗列在主菜单上供用户进行选择,以便进行相应的操作。

(2)运算对象应能够从键盘输入,并且运算过程中可以不断更新运算的输入数据。

大整数地运算大数据结构课程设计

大整数地运算大数据结构课程设计

目录一、题目概述〔内容与要求〕2二、功能分析2三、设计3四、运行与测试4五、总结21六、参考文献21一、题目概述〔内容与要求〕内容:请设计一个有效的算法,可以进展两个n位大整数的四如此运算。

①长整数长度在二十位以上。

②实现两长整数的加、减、乘、除操作。

要求:1.设计数据结构,存储结构;2.在c兼容环境完成上述题目的代码编写与调试;3.程序运行界面交互性好;4.软件运行,给出测试数据。

二、功能分析1.设计一个实现长整数进展四如此运算的程序,长整数长度在二十位以上,有正负数的区别。

2.输入每四位一组,组间用逗号隔开,长整数位数没有上限,以分号完毕长整型数据的输入。

用lnode结点数据结构存储数据。

每一个数据有一个头结点,它的data域用来放数据的正负数。

其余结点的数都为正整数。

3.程序包含数据的输入,判断,运算,输出和主函数。

4.具体程序执行的命令包括:a)输入函数:inputa();inputb();//的输入并建立双向循环链表b)判断函数:pare();//比拟数据的大小c)运算函数:unsigndeadd();//无符号的加法a)unsigndesub();//无符号的减法b)add();sub();mul();div();//加减乘除四如此运算d)输出函数:divput();//除法结果的输出函数a)putoutc();//其余结果的输出函数e)主函数:main();5.系统功能结构框图系统功能结构框图三、设计首先要考虑的是如何表示长整型数。

可以4位数形成1组,而一个长整型数可能会有很多组这种4位数,而每节之间是有先后顺序的,因此我们可以考虑用数组和链表来存储数据。

(1)再考虑到每个长整型数的长度在输入之间是无法预知的,因此使用链表在存储空间的分配上更方便一些。

(2)在输入数据时总是从高位到低位地存储,而计算时总是从低位向高位运算,因此采用双向链表更方便,而为了从头结点方便地转到尾结点可以采用循环链表。

数据结构课程设计报告长整数运算范文

数据结构课程设计报告长整数运算范文

数据结构课程设计报告长整数运算数据结构课程设计报告题目:长整数四则运算一、需求分析1.问题描述:由于工程上有时候需要对很大的数进行计算,可是计算机本身提供的数据类型无法保存几百位甚至几千位的数字,因此需要设计专门的算法对数据进行相应的计算。

此程序的设计任务是:设计一个程序能够实现长整数运算的程序,而且能够对一些错误异常进行辨别调整,计算出正确的结果。

程序输入格式是字符串,保存时需要用双向循环链表将字符串每四位保存在循环链表中的一个节点中,然后再计算后运行出结果。

2.基本功能功能一:建立双向循环链表,计算链表个数,对链表的数据进行修改,能在链表中插入结点。

功能二:将字符串转换成相应的数字存储在双向循环链表中功能三:对存入双向循环链表的长整数进行相加,相减,相除。

3.输入输出程序输入以字符串的形式输入,数据的类型是字符串,包含元素的范围是数字,逗号,负号。

输入时用字符串输入,输出时以一链表结点输出,而且每个结点表示四位。

二、概要设计1.设计思路:由于计算机无法完成位数很大的数字计算,设计思路就是将很长的数据进行分割,一部分一部分的用计算机固有数据类型进行计算。

将各部分的结果整合起来。

由于计算机固有的整数类型存数的对大整数是2^15-1,因此为了方便,且符合中国人对长整数的表示习惯,建立一个双向循环链表,每个结点存储四位数字,以万为进制。

从最低位开始加法,超过一万向上进位,因此每次加法应该是对应两个结点和进位数相加,进位值初始为0;减法也是一个结点计算一次,每次计算应该是第一个链表对应的结点值减去第二个结点的值和借位值的和,借位值初始值为0;除法的计算能够借助减法,被减数被减数减一次则最终结果加一;直至被减数比减数小。

2.数据结构设计:因为计算的是一个连续的数字,需要桉顺序一次计算,因此采用的数据结构的逻辑结构是线性表。

因为要求每一个结点只存储四位数字,为了将数字连接起来,采用的数据结构的存储结构是链式。

数据结构》课程设计报告-实现对算术四则溷合运算表达式的求值以及大整数计算

数据结构》课程设计报告-实现对算术四则溷合运算表达式的求值以及大整数计算

江汉大学文理学院课程设计报告课程名称:设计题目:系别:专业:组别:学生姓名:起止日期:年月日~年月日指导教师:承诺书本人郑重声明:本人所呈交的学术论文,是本人在导师指导下独立进行研究工作所取得的成果。

除文中已经注明引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写过的作品成果。

对本文的研究作出重要贡献的个人和集体,均已在文中以明确的方式标明。

本人完全意识到本声明的法律结果由本人承担。

学生(签名):年月日《数据结构》课程设计报告题目:实现对算术四则混合运算表达式的求值以及大整数计算一.设计目的数据结构是计算机专业的核心课程,是一门实践性很强的课程。

课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。

严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。

二.问题描述(一)当用户输入一个合法的算术表达式后,能够返回正确的结果。

能够计算的运算符包括:加、减、乘、除、括号;能够计算的操作数要求在实数范围内;对于异常表达式能给出错误提示。

(二)求两个不超过200位的非负整数的和,积和商。

三.调试与操作说明(一)需求分析本程序所做的工作为:能直接求出四则表达式的值,并输出;可以解决因数值位数太大unsigned类型都无法表示的大数之间的运算。

本程序可用于小学教师对学生作业的快速批改以及对数值位数要求较大的科学运算。

此程序规定:1.程序的主要功能包括两部分:表达式求解和大整数的运算。

2.表达式求解中输入的必需为一个正确的四则表达式,可以是整型也可以为浮点型,比如:3*(7-2)+5和3.154*(12+18)-23。

大整数的运算中根据提示要输入两行数据位数不能大于200位。

3.程序的输出:表达式求解中为一浮点型数据,大整数运算中输出的即为运算之后的结果,结果里不能有多余的前导0。

大整数计算实验报告

大整数计算实验报告

石家庄经济学院实验报告学院: 信息工程学院专业: 计算机科学技术计算机人论坛1.需求分析1.1开发背景在现实生活中不可避免地我们会遇到一些超大整数之间的运算,比如要计算马云的资产,以及国有银行的转账收入支出等一些数的存储等等类似的问题,而由于计算机整形数的最小值和最大值范围仅为-32768到32767,所以关于大整数的实验即呼之欲出,本实验就是针对数值很大、精度很高的大整数进行的加法减法以及乘法的计算。

1.2数据需求指针:L1,L2:分别为指向这两条存储要进行运算的链表头结点的指针;L3:指向乘法的结果链表;L4:在运算乘法的时候做中间量使用。

prior:双向链表的头指针;next:双向链表的尾指针。

data:整形数,链表所存的数据。

1.3功能需求对一个进行运算的软件,加法和减法是最基本的运算,本实验又额外增加了大整数的乘法。

1.4测试数据第一个数:9,568,974,512;第二个数:8,648,761,512;2.概要设计2.1功能模块图由需求分析可画出如下功能模块图。

图2-1 功能模块图2.2各功能子程序定义1.创建链表:Status creat(DuLinkList &L,char str[30]);2.输出链表中结点内的数据:Status output(DuLinkList L);3.加法:DulNode *Add(DuLinkList L1,DuLinkList L2);4.减法:DulNode *Sub(DuLinkList L1,DuLinkList L2);5.乘法:DulNode *Mul(DuLinkList L1,DuLinkList L2);计算机人论坛2.3主界面截图图2-3 程序主界面3.详细设计3.1数据结构设计此款软件是基于线性表双向链表完成的,在每个分过程中都充分利用了链表指针灵活又不太易于掌控的特性,但若是全面理解指针以及链表的特点,也是很容易设计此款软件的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山东理工大学计算机学院课程设计(数据结构)班级姓名学号指导教师二○一二年一月十日课程设计任务书及成绩评定课题名称长整数的代数计算Ⅰ、题目的目的和要求:(1) 课程设计目的巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。

通过本课程的学习,能熟练掌握几种基本数据结构的基本操作,能够应用线性数据结构解决实际问题。

(2)基本要求:设计数据结构完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘除等基本代数运算。

①长整数长度在二十位以上。

②实现两长整数的加、减、乘、除操作。

选作:③输入输出均在文件中。

④分析算法的时空复杂性。

Ⅱ、设计进度及完成情况Ⅲ、主要参考文献及资料[1] 严蔚敏数据结构(C语言版)清华大学出版社 1999[2] 严蔚敏数据结构题集(C语言版)清华大学出版社 1999[3] 谭浩强 C语言程序设计清华大学出版社[4] 与所用编程环境相配套的C语言或C++相关的资料Ⅳ、成绩评定:设计成绩:(教师填写)指导老师:(签字)二○一二年一月十日目录第一章概述 (1)第二章系统分析 (2)第三章概要设计 (3)第四章详细设计 (4)第五章运行与测试 (14)第六章总结与心得 (16)参考文献 (15)第一章概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。

课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。

《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。

数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

在这次程序设计中我选择了长整数的代数计算这个题目,在一般的程序运算中,长整数是无法计算的,因为计算机一次能够运算的位数是有限,一旦整数很长,就需要一个程序来进行多次计算,通过这个程序,可一把一个长整数分成多个普通整数来进行计算,使得长整数也可以进行运算。

我编写的这个程序就可以进行加减乘除的运算,各个数据也可以是负数。

第二章系统分析1、设计一个实现长整数进行四则运算的程序,长整数长度在二十位以上,有正负数的区别。

2、输入每四位一组,组间用逗号隔开,长整数位数没有上限,以分号结束长整型数据的输入。

用lnode结点数据结构存储数据。

每一个数据有一个头结点,它的data域用来放数据的正负数。

其余结点的数都为正整数。

3、程序包含数据的输入,判断,运算,输出和主函数。

4、具体程序执行的命令包括:输入函数:inputa();inputb();//的输入并建立双向循环链表判断函数:compare();//比较数据的大小运算函数:unsigndeadd();//无符号的加法unsigndesub();//无符号的减法add();sub();mul();div();//加减乘除四则运算输出函数:divput();//除法结果的输出函数putoutc();//其余结果的输出函数主函数:main();第三章概要设计首先要考虑的是如何表示长整型数。

可以4位数形成1组,而一个长整型数可能会有很多组这种4位数,而每节之间是有先后顺序的,因此我们可以考虑用数组和链表来存储数据。

(1)再考虑到每个长整型数的长度在输入之间是无法预知的,因此使用链表在存储空间的分配上更方便一些。

(2)在输入数据时总是从高位到低位地存储,而计算时总是从低位向高位运算,因此采用双向链表更方便,而为了从头结点方便地转到尾结点可以采用循环链表。

综上考虑,应以双向循环链表表示长整数,每个结点含一个整型变量,且仅绝对值不超过9999的整数,整个链表用十进制数表示。

(3)对于每一个长整型数可以设置一个头结点,其中的数据域用来表示该长整型数的正负号及组数,该值的符号则表示该长整型数的符号,该数的绝对值表示该长整型数包含的4位数的组数。

第一个存储4位数据组的结点称为首结点,而最后一个4位数据组结点称为尾结点。

为此需要结构数据类型:双向循环链表:typedef struct lnode{//结点结构体int data;struct lnode *next;struct lnode *prior;}lnode,*lnodelist主要的模块可分为输入函数:inputa();inputb();//的输入并建立双向循环链表判断函数:compare();//比较两个数据的大小,进行相应的的计算。

运算函数:add();sub();mul();div();//运算输出函数:divput();putoutc();//除法的输出及其他运算的输出。

主函数:main();第四章详细设计#include<iostream>using namespace std;#include<stdio.h>#define OK 1;#define FALSE 0;typedef struct lnode{//结点结构体int data;struct lnode *next;struct lnode *prior;}lnode,*lnodelist;int compare(lnodelist &ahead,lnodelist &bhead,int &q)//比较a和b的大小{lnode *pa,*pb;int bcount=0,acount=0;pa=ahead->next;pb=bhead->next;while(pa!=ahead){acount++;pa=pa->next;}while(pb!=bhead){bcount++;pb=pb->next;}if(acount>bcount)q=1;else if(acount<bcount)q=-1;else{pa=ahead->prior;pb=bhead->prior;while((pa->data==pb->data)&&(pa->prior!=ahead)){pa=pa->prior;pb=pb->prior;}if(pa->data>pb->data)q=1;else if(pa->data<pb->data)q=-1;else q=0;}return 0;}int inputa(lnodelist &ahead)//输入长整数a{lnode *p;char ch;int afirst;cout<<"请输入第一个无符号长整型数,要求每四位用逗号隔开末尾为分号:"<<endl;p=ahead=new lnode;//头结点p->data=0;p->next=p;p->prior=p;cin>>afirst>>ch;//输入第一个结点数据if(afirst<0){ahead->data=-1;afirst=-afirst;}else ahead->data=1;p=new lnode;p->data=afirst;p->next=ahead;ahead->prior=p;ahead->next=p;p->prior=ahead;while(ch!=';'){cin>>afirst>>ch;p=new lnode;p->data=afirst;p->next=ahead->next;ahead->next->prior=p;ahead->next=p;p->prior=ahead;}return OK;}int inputb(lnodelist &bhead)//输入长整数b{lnode *p;char ch;int bfirst;cout<<"请输入第二个无符号长整型数,要求每四位用逗号隔开末尾为分号:"<<endl;p=bhead=new lnode;//头结点p->data=0;p->next=p;cin>>bfirst>>ch;//输入第一个结点数据if(bfirst<0){bhead->data=-1;bfirst=-bfirst;}else bhead->data=1;p=new lnode;p->data=bfirst;p->next=bhead;bhead->prior=p;bhead->next=p;p->prior=bhead;while(ch!=';'){cin>>bfirst>>ch;p=new lnode;p->data=bfirst;p->next=bhead->next;bhead->next->prior=p;bhead->next=p;p->prior=bhead;}return OK;}void putoutc(lnode *chead)//输出结果{lnode *s,*pr;pr=chead->next;if(pr!=chead){cout<<pr->data;pr=pr->next;}while(pr!=chead){ if(pr->data==0)cout<<"0000";else if(pr->data>0&&pr->data<10)cout<<"000";else if(pr->data>=10&&pr->data<100)cout<<"00";else if(pr->data>=100&&pr->data<1000)cout<<"0";cout<<pr->data;s=pr;pr=pr->next;delete s;}cout<<endl;}int unsigndeadd(lnodelist &ahead,lnodelist &bhead)//无符号长整数的加法{int sum,carry=0; //进位lnode *pa,*pb;lnode *p,*chead;pa=ahead->next;pb=bhead->next;p=chead=new lnode;//头结点p->data=0;p->next=p;p->prior=p;while(pa!=ahead&&pb!=bhead){sum=pa->data+pb->data+carry;p=new lnode;p->data=sum%10000;carry = sum/10000;p->next=chead->next;chead->next->prior=p;chead->next=p;p->prior=chead;pa=pa->next;pb=pb->next;}if(pa!=ahead)//a还没有处理完,把a剩下的数字加到和上{while(pa!=ahead){sum=pa->data+carry;p=new lnode;p->data=sum%10000;p->next=chead->next;chead->next->prior=p;chead->next=p;p->prior=chead;carry = sum/10000;pa=pa->next;}}if(pb!=bhead)//b还没有处理完,把b剩下的数字加到和上{while(pb!=bhead){sum=pb->data+carry;p=new lnode;p->data=sum%10000;p->next=chead->next;chead->next->prior=p;chead->next=p;p->prior=chead;carry = sum/10000;pb=pb->next;}}if(carry)//如果最后一位有进位,就申请一个结点存储{p=new lnode;p->data=carry;p->next=chead->next;chead->next->prior=p;chead->next=p;p->prior=chead;}putoutc(chead);return OK;}int unsigndesub(lnodelist &ahead,lnodelist &bhead)//无符号长整数的减法a比b 大。

相关文档
最新文档