有一道题目,其中第五个空要求填一个表达式,取x和y的最大值,正确答案是(x>=y)?x:y,但是本人假如填(x>y)?x:y,也就是没有了中间的=号,算不算正确?原因是假如当x==y的时候,本人不加等号就输出y,加等号输出x,感觉应该是一样的
但是这里的参考答案只给出了(x>=y)?x:y,
所以(x>y)?x:y算正确答案吗?
还是说这里其实有必须加等号的原因?
谢谢
但是这里的参考答案只给出了(x>=y)?x:y,
所以(x>y)?x:y算正确答案吗?
还是说这里其实有必须加等号的原因?
谢谢
解决方案
15
从功能上来说有没有等号都是可以的,效果一样
10
算正确,参考答案仅供参考
30
在此处加不加等号是一样的
5
“多一少一”问题占程序员常犯错误的10%以上!
避免“多一少一”问题的方法之一是将例如<10甚至<5的数代入程序片断,搬手指头心算验证一下程序到底应该写为
x、x-1、x+1中的哪个?
<、<=、==、>、>=中的哪个?
避免“多一少一”问题的方法之一是将例如<10甚至<5的数代入程序片断,搬手指头心算验证一下程序到底应该写为
x、x-1、x+1中的哪个?
<、<=、==、>、>=中的哪个?
10
int max = x < y ? y : x;
能使用 < 的地方,不要使用其他的。
15
效果一样,答案只是个参考
不过在这里面很少用=
不过在这里面很少用=