【发布时间】:2021-07-08 19:55:06
【问题描述】:
我正在使用 if else 条件在 c 中制作一个程序,它运行得非常好,没有任何错误,但它没有运行 else 条件(即,即使我给它提供了应该打印 else 条件的输入,它是给我 else if 条件而不是 else 条件),这是代码
if(Number_Of_People==1){
printf("Show us your identification so we can proceed!");
}
else if(1<Number_Of_People<=6){
printf("Show us the identification of each member so that we can proceed!");
}
else
{
printf("Sorry, we dont have rooms for so many people!");
}
【问题讨论】:
-
1<Number_Of_People<=6并不代表您认为的意思。它等价于(1 < Number_Of_People) <= 6,并且由于1 < Number_Of_People始终计算为0 或1,因此整体条件将始终计算为1 (true)。 -
顺便说一句,尝试使用GCC 编译器作为
gcc -Wall -Wextra -g。它肯定会通过发出警告来捕获此类错误.... -
你想要:
else if ((1 < Number_Of_People) && (Number_Of_People <= 6)) { -
我实际上并没有包含程序的那部分,我使用printf和scanf从用户本身获取人数的值,代码很大所以我没有在这里包含它
标签: c if-statement relational-operators