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

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

热度:137   发布时间:2007-11-18 11:56:32.0
以下是引用nuciewth在2007-11-18 11:44:26的发言:

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

都在发表意见,就你灌水


----------------解决方案--------------------------------------------------------
你不会用字符串啊.
----------------解决方案--------------------------------------------------------

再写一个吧

#define compare(a,b) ((a==b)?"a=b":((((int)(a-b+1)-1)&0x80000000 )?"a<b":"a>b"))

帮忙测试一下看看.

测试程序:

[CODE]#include<iostream>
#include<cmath>
using namespace std;
#define compare(a,b) ((a==b)?"a=b":((((int)(a-b+1)-1)&0x80000000 )?"a<b":"a>b"))
int main()
{
double a,b;
while(cin>>a>>b)
cout<<compare(a,b)<<endl;
return 0;

}[/CODE]


----------------解决方案--------------------------------------------------------
题目是不要用IF,其实增加了一个考点,要熟练条件运算符(? :)

要比较A,B的大小,结果可能是A>B,A<B,A==B,如果没有一个选择性的语句或运算符的话,怎么可能达到这三种情况都能输出
----------------解决方案--------------------------------------------------------
我要去吃饭了.回来再说.
----------------解决方案--------------------------------------------------------

谢谢楼主提示啊
我也有办法了

#define compare(a,b) ((abs((a)-(b)) <= 1e-6) ? "a=b":((((a) - (b)) >= 1e-6) ?"a>b":"a<b"))

没有用<,>,和if
只用了?:,<=,>=
题目是不要用>,<,其实增加了一个考点,看你能否熟练并且灵活地用>=,<=来替换>,<


----------------解决方案--------------------------------------------------------
居然能用 &gt;= &lt;=
----------------解决方案--------------------------------------------------------
以下是引用cosdos在2007-11-18 12:35:32的发言:
居然能用 >= <=

呵呵
受楼主启发
楼主说?:和if不同,题目没有要求不用?:为啥不用
于是我顿悟了


----------------解决方案--------------------------------------------------------
这个能实现吗,只是&lt;=1e-6
----------------解决方案--------------------------------------------------------
关于float型的变量如何进行比较请自己看书去

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