当前位置: 代码迷 >> C语言 >> [讨论]比较A,B的大小
  详细解决方案

[讨论]比较A,B的大小

热度:183   发布时间:2007-11-18 11:27:27.0
以下是引用nuciewth在2007-11-18 10:26:08的发言:
还没去想,但可以确定5楼的是错的.
看清楚题目先.补充:A,B是两个实数(可正可负,还可能是0)

我看到是实数了
只不过我个人觉得实数是无解的
就弄了个int版的


----------------解决方案--------------------------------------------------------
条件运算符都可以用
a-b然后移位,看移出的最高位c
c?printf("b比a大"):printf("a比b大");
----------------解决方案--------------------------------------------------------

不对,还有个相等没有判断,那在前面直接
a-b? printf(""):printf("相等");


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-11-18 11:26:14的发言:
哦,那如果是0.000000001
和0怎么比较.

你这个怎么行呢,你输入的数当然要在float的精度之内是不,超过float的精度还有什么意思

在精度之内,不同的数肯定表示结果肯定不同


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-11-18 11:34:44的发言:
条件运算符都可以用
a-b然后移位,看移出的最高位c
c?printf("b比a大"):printf("a比b大");

《程序员面试宝典》这本书上是这么弄的

int c = a - b;
char *strs[2] = { "a大", "b大" };
c = unsigned(c) >> (sizeof(int) * 8 - 1);
printf("%s", strs[c]); (原书没这句,我寻思着它的意思自己加的,呵呵。)


----------------解决方案--------------------------------------------------------
以下是引用succubus在2007-11-18 11:25:55的发言:

按你题目的要求,? :也不应该用的,这跟直接用if进行判断没两样了

条件运算符是条件运算符,IF是IF怎么不能用


----------------解决方案--------------------------------------------------------
以下是引用PcrazyC在2007-11-18 11:41:55的发言:

条件运算符是条件运算符,IF是IF怎么不能用

你要用随你便
ok?


----------------解决方案--------------------------------------------------------
以下是引用PcrazyC在2007-11-18 11:41:00的发言:

你这个怎么行呢,你输入的数当然要在float的精度之内是不,超过float的精度还有什么意思

在精度之内,不同的数肯定表示结果肯定不同

补充:A,B是两个实数(可正可负,还可能是0)


----------------解决方案--------------------------------------------------------

以下是引用PcrazyC在2007-11-18 11:41:55的发言:

条件运算符是条件运算符,IF是IF怎么不能用

你当然可以这样说,但你也要看实质吧.
发觉你越来越不讲理了


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-11-18 11:44:26的发言:

你当然可以这样说,但你也要看实质吧.
发觉你越来越不讲理了

你做出来再说

要是任意的实数比较,不过要在计算机能处理的精度内


----------------解决方案--------------------------------------------------------
  相关解决方案