我试图解决这个问题:给定一个整数,如果数字介于-5和5之间,则返回1,和/或如果它是奇数。如果两个属性均不适用,则返回0。 这是我尝试过的:
int rangeOrOdd(int val) {
if (val < 5)
return 1;
else if (val > 5)
return 1;
else if ((val%2)!=0)
return 0;
else
return 0;
}
答案 0 :(得分:2)
问题是您正在分别检查不同的条件。例如,只要您的号码小于5
,就会返回1
,这是错误的,因为您会返回1
来查找-1000
这样的数字。
此外,您将返回0
作为奇数。在这种情况下你应该返回1
。
您必须使用ANDs(&&
)和ORs(||
)来组合您的条件。
这是一个正确组合不同条件的衬垫:
return ((val < 5 && val > -5) || val % 2 == 1) ? 1 : 0;
如果你不喜欢一行,你可以像这样分开它(但它是一样的):
if ((val < 5 && val > -5) || val % 2 == 1) {
return 1;
} else {
return 0;
}