问题描述
比方说,我们有四个变量:int a,b,c,d;
。我需要检查其中两个是否相等。
例如,1 1 9 5
为真,但3 9 8 4
和3 3 3 1
为假。
当然,为此编写一个if语句会花费很多时间,不容易阅读,而且很容易出错。
写这样的陈述的最好方法是什么?
解决方法
有几种方法可以做到这一点。
一个涉及显式检查所有条件。由于您有4个变量,因此只需检查6个条件。这些很容易计算。
int n = (a == b) + (a == c) + (a == d) + (b == c) + (b == d) + (c == d);
然后检查n
是否为1。这是有效的,因为布尔值将转换为int(值1为true,0为false)。
另一种可能性是将它们全部存储在容器(如矢量)中,对其进行排序,然后计算相邻相同值的数量。