布尔比较说它是真的,但if说它是假的

时间:2016-10-30 10:44:16

标签: c++

抱歉,如果这个问题对你们来说太基本了,但我有这个代码让我感到困惑。我在if之前创建一个布尔比较,并将相同的比较放到if条件中,但它不会在if块中执行。

#include<iostream> #include<cstdio>

using namespace std;

int main()
{
    float s[2] = {0.24};
    printf("Is this is true? (1 = yes, 0= false): %d", s[0] >= 0) && (s[0] < (1/7 + 1/14));

     printf("\nBefore if: s[%d] %f\n", 0, s[0]);
     if ((s[0] >= 0) && (s[0] < (1/7 + 1/14)))
     {
        s[0] = 10;
    }

    printf("\nAfter if: s[%d] %f\n", 0, s[0]);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

printf("Is this is true? (1 = yes, 0= false): %d", s[0] >= 0 && (s[0] < (1/7 + 1/14)))

应该

printf;

您执行s[0] >= 0的{​​{1}},然后在&&结果上执行printf