所以我正在编写IF语句,其中
if (((number_one > 10) + (number_two < -10)) == 5) {
printf("%d + %d = five", number_one, number_two);
我基本上希望代码能够识别,如果用户输入第一个数字(number_one)并且它满足大于10的条件,并且第二个数字(number_two)小于-10,那么当两个数字加在一起并等于5时,if条件满足并且将发生printf语句。问题是,由于"== 5"当我删除"== 5"时,条件对我的程序起作用,当它存在时,它就不起作用了。谁能提供建议或变通办法?我是一个初学者,我只知道printf, scanf, if/else if/else语句,所以使用这些将是首选。谢谢你!
让我们把你在这里写的这行(我们从in到out)停一下:
(((number_one > 10) + (number_two < -10)) == 5)
(number_one > 10) => this evaluates to true or false, which means true == 1 and false == 0
(number_two < -10) => the same as the first
所以你要么加上
0+0
0+1
1+0
1+1
永远不会求值为5
看@Jarod42如何正确实现条件的答案
使用&&
或and
:
if ((number_one > 10) && (number_two < -10) && (number_one + number_two == 5)) {
/*..*/
}