关于用C语言编写11位以上计算器的问题

C语言中基本数据类型都有一定的位数限制,怎样超过这个位数限制进行高位数运算呢,不一定是对一定范围位数的整数进行运算,可以只对12位的整数或者是13位的整数进行运算,关键是要说明方法。老师说要运用数组的知识。希望有高手能帮助下,谢谢
如果有高手可以长期指导我学习C语言请加QQ260919069
感激不尽~!!

这是高精度运算的问题
举个例子,高精度加吧
比如,112233445566778899 + 998877665544332211
这时候,两个操作数用int或者long等整型变量是不可能存储的
那么我们用两个数组来存
int a[100];
int b[100];
那么,a[0]=1 a[1]=1 a[2]=2 a[3]=2 a[4]=3 a[5]=3...
b[0]=9 b[1]=9 b[2]=8 b[3]=8 ...
就是用a[]来存第一个数,用b[]来存第二个数
然后相加怎么办呢?
回想一下我们的小学数学,我们是如何用竖式(是叫竖式,没记错吧?呵呵)来手工计算加法的?
首先,个位与个位相加,得到结果,再判断是否要进位,进多少位,下一步,十位与十位相加,再继续得到结果,进位,……
最后就加到了结果,是吧?
那我们这里也一样来模拟,让两个数组的末端对齐,从个位加起,加完就进位,直到加到最高位
这样就可以得到一个结果数组,比如我们用c[]来存储
最后再输出来,就是相加结果了

然后减法,乘法,除法,道理都一样,就是模拟我们小学学数学时候的那种手工竖式计算方法啦
如果不记得了呢?跟弟弟妹妹借本小学数学看一看吧,哈哈~

因为你没给悬赏分,所以我就写写思路,不写程序了

其实,你最好自己理解一下思路,自己把程序打出来,这样才能真正掌握这种高精度计算的算法

:)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-10-05
数组.链表都可以
第2个回答  2007-10-05
数组再好不过拉!!!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网