为什么第一个整数值在if之后变为零

如果触发int1的值变为0之后 我有很多这个问题,即使是简单的求和函数也给出了错误的答案,我也不知道为什么要帮我

int main(void)
{
    int num1;
    int num2;
    printf("Enter the first Numver:\n");
    scanf_s("%d",&num1);
    printf("Enter the scond Numver:\n");
    scanf_s("%d",&num2);

    if (num1 == num2)
    {
        printf("%d is equal to %d\n",num1,num2);
    }
    if (num1 = !num2)
    {
        printf("%d not equal to %d\n",num2);
    }
    if (num1<num2)
    {
        printf("%d is greater than %d\n",num2,num1);
    }
    if (num1>num2)
    {
        printf("%d greater than %d\n",num2);
    }
    if (num1 >= num2)
    {
        printf("%d greater or equal to %d\n",num2);
    }
    if (num1 <= num2)
    {
        printf("%d greater or equal to %d\n",num1);
    }

    return 0;
}

当我输入4和3时,它说3大于0

qiaodayu 回答:为什么第一个整数值在if之后变为零

num1 = !num2被分组为num1 = (!num2)。换句话说,num1被分配给!num2,它是1或0。

num1 != num2是解决方法。

本文链接:https://www.f2er.com/3153519.html

大家都在问