【问题标题】:When I execute the following code, there is no output, what could be the cause? [closed]当我执行以下代码时,没有输出,可能是什么原因? [关闭]
【发布时间】:2021-12-09 20:30:27
【问题描述】:

这是我的 C 代码。我没有得到任何输出。请帮忙。我也尝试在主函数内部添加初始化,然后我也没有得到任何输出。

#include <stdio.h>

int x = 10;
int main()
{
    if (x = 20)
    {
        x = -1;
    }
    else
    {
        printf("x not eqaul to 20\n");
    }
    if (x > 0)
    {
       printf("x not greather than 0\n");
    }
    else
    {
        /* notjing */
    }
    return 0;
}

【问题讨论】:

  • if (x = 20) 并没有按照你的想法去做。
  • 你能给我解释一下吗
  • @GSerg = 是赋值,== 是比较。
  • 将一些prints 添加到每个if 和每个else 分支,看看会发生什么。
  • x=20 是一个作业。 x==20 是一个比较运算符。 x=20 的结果是 20,这是一个不等于 0 的数字,所以这个条件是正确的。 x==20 将为 x=10 给出 0 或 false,因为它的比较运算符。因此,如果现在 x=-1,它首先进入内部。在这个 x>0 不为真之后,我们进入最后一个 else 块,然后结束。

标签: c output


【解决方案1】:

所以在第一个if-语句中你写了if(x=20)。这不是条件参数,这是一个数学操作数。

所以x 将设置为 20; afterworths 它将被设置为-1。并且不会调用 printf()

如果您想使用if(x==20)

【讨论】:

  • 它不是一个“数学操作数”,而是一个赋值表达式。
猜你喜欢
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多