设计一个程序实现两个任意长的整数(包括正数和负数)、任意精度实数的算术运算.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/06 21:42:53
设计一个程序实现两个任意长的整数(包括正数和负数)、任意精度实数的算术运算.
要求:
(1)用动态链表存贮数据,每结点含一个整型变量,表示若干位数.
(2)整数输入和输出按中国对于长整数的习惯表示,每3位1组,组间用逗号隔开.
(3)实现加、减运算.
(4)程序运行界面清晰实用.
小弟是初学者,所以请各位大侠不吝赐教,在此我不求答案,只求思路与方法(请不要超出初学者应有的理解范围),比如用链表怎么实现存储,任意精度等.我不要答案,我是要用此来学习的.(分就剩20了,
呵呵,我竟然忘了说明是C++中的问题
要求:
(1)用动态链表存贮数据,每结点含一个整型变量,表示若干位数.
(2)整数输入和输出按中国对于长整数的习惯表示,每3位1组,组间用逗号隔开.
(3)实现加、减运算.
(4)程序运行界面清晰实用.
小弟是初学者,所以请各位大侠不吝赐教,在此我不求答案,只求思路与方法(请不要超出初学者应有的理解范围),比如用链表怎么实现存储,任意精度等.我不要答案,我是要用此来学习的.(分就剩20了,
呵呵,我竟然忘了说明是C++中的问题
我觉得是这样,
链表可以这样设计 [C/C++]:
struct value
{
int flag;
int value;
struct value *next;
}
flag表示标志位,可能的标志有:
enum
{
FLAG_FUHAO,
FLAG_DIGITAL,
FLAG_DOT
}
分别表示符号位,数字位和小数点位.
每次读入一个符号、数字或者小数点,就创建一个新节点并挂在当前链表的末尾.
value那项只有flag是flag_digital时有效,存入一个0~9的数值.
比如读入-12345.54321的话,你的链表就有12个节点,首节点是一个负号,接下来是1,2,3,4,5,然后是小数点标志,然后是5,4,3,2,1.
这样,存储的问题就解决了.
实际运算的时候,先遍历链表,找到小数点位,没有小数点的话,表示整个数据为整数.
小数点前面的m个节点是整数部分,小数点后面的n个节点是小数部分.
然后你需要从两条链表(参与运算的两个数)的小数点位开始,按照数学需要按对应位置,也就是链表的不同对应节点去计算,结果保存在一个新的链表里.当然,新链表需要有插入操作,呵呵.
大概就是这样,还有问题,欢迎继续咨询.
链表可以这样设计 [C/C++]:
struct value
{
int flag;
int value;
struct value *next;
}
flag表示标志位,可能的标志有:
enum
{
FLAG_FUHAO,
FLAG_DIGITAL,
FLAG_DOT
}
分别表示符号位,数字位和小数点位.
每次读入一个符号、数字或者小数点,就创建一个新节点并挂在当前链表的末尾.
value那项只有flag是flag_digital时有效,存入一个0~9的数值.
比如读入-12345.54321的话,你的链表就有12个节点,首节点是一个负号,接下来是1,2,3,4,5,然后是小数点标志,然后是5,4,3,2,1.
这样,存储的问题就解决了.
实际运算的时候,先遍历链表,找到小数点位,没有小数点的话,表示整个数据为整数.
小数点前面的m个节点是整数部分,小数点后面的n个节点是小数部分.
然后你需要从两条链表(参与运算的两个数)的小数点位开始,按照数学需要按对应位置,也就是链表的不同对应节点去计算,结果保存在一个新的链表里.当然,新链表需要有插入操作,呵呵.
大概就是这样,还有问题,欢迎继续咨询.
设计一个程序实现两个任意长的整数(包括正数和负数)、任意精度实数的算术运算.
设计一个程序实现两个任意长的整数的求和运算.
5、 编写程序实现功能是:任意输入20个整数到一维数组中,计算:(1)正数的个数和正数的和; (2)负数
编写程序其功能是:任意输入20个整数到一维数组中,计算(1)正数的个数和正数的和(2)负数同正数.
设计一个程序实现两个二十位的整数的求和运算.
圆周率的高精度近似值计算程序功能简介:实现任意大小精度的圆周率近似值运算,要求具有计算器类似的界面,运算结果以直接显示和
任意输入100个整数,分别统计其中的正数、负数和零的个数.
编写一个C语言程序实现判断任意输入的一个整数是几位数,并求每位的和.
用C语言编写程序实现从键盘上任意输入两个整数,输出两个整数的乘积.
用C语言设计一个程序以便能快速地实现复制任意长度的文件
编一个程序,用递归函数 gcd(a,b)实现求两个整数 a,b 最大公因子的欧几里德算法.输入任意整数a,b,调用递
任意找一个正数,利用计算器对它进行不断的开算术平方根运算,你发现什么?