关于 IF 语句的条件以及如何使其工作的问题



所以我正在编写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)) {
/*..*/
}

最新更新