a ,b
if((a-b)>0)
printf("a大于b");
else if((a-b)==0)
printf("a小于b");
else
printf("a等于b");
就这么简单,搞得那么复杂干吗.
----------------解决方案--------------------------------------------------------
假如两个数有30位有效数字怎么办,有什么类型可以达到那个要求,只能用数组,用字符串的形式输入才行.不会有人会问这么简单的问题的
----------------解决方案--------------------------------------------------------
诸位还是没有明白我的意思,我是说任意位数的比较,这个数可能一千位,或一万位,怎么可能事先定义大小呢?
----------------解决方案--------------------------------------------------------
没人事先定义大小,只是要你定义一个在你的范围之内的最大的数的大小,就是定义的要足够的大,但你说的也太大了,好像不能定义太大的数组,几万维勉强可以
----------------解决方案--------------------------------------------------------
C是不能定义动态数组的,只有C++可以
----------------解决方案--------------------------------------------------------
LZ说的程序主要是麻烦
毕竟就那几种情况:
单个数据间的比较(数字与数字 数字与字符 字符与字符)
多个数据间的比较(字符串与字符串 大型数据与大型数据 大型数据与字符串)
单个数据 与 多个数据间的比较(数字与字符串 字符与字符串 数字与大型数据 字符与大型数据)
其中最麻烦的就是对大型数据的比较和存储模式处理起来最麻烦
但是这些东西写起来都不是很难
不知LZ用这个干嘛?
----------------解决方案--------------------------------------------------------
银行取钱超过5w就得预定,你输入一个大数总要有范围吧
先输入要输入数的位数n,然后用molloc分配个比n大的区域,再用链表不就得了
----------------解决方案--------------------------------------------------------
以下是引用jmy2446267在2007-4-17 16:11:18的发言:
对于两个超长数的比较,首先要存储起来,不过由于不知道位数,如何能用字符串?C不能动态定义数组啊。只能用链表结构,不过难解决的是对于整数和小数的存储,在链表中定义 int a,存入输入的超长数的每一位,当时如何将小数点存入呢,而且即使存入了还有比较大小的问题呢?这中间设计到很多细节有待解决啊!
对于两个超长数的比较,首先要存储起来,不过由于不知道位数,如何能用字符串?C不能动态定义数组啊。只能用链表结构,不过难解决的是对于整数和小数的存储,在链表中定义 int a,存入输入的超长数的每一位,当时如何将小数点存入呢,而且即使存入了还有比较大小的问题呢?这中间设计到很多细节有待解决啊!
先找到小数点,再判断小数点前后的位数,位数相同再按位比较
关于比较的问题:反正是按位比较,你无论当数字还是字符比较都一样
----------------解决方案--------------------------------------------------------