【问题标题】:Why the output of the following code is "No"? [duplicate]为什么下面代码的输出是“No”? [复制]
【发布时间】:2022-11-27 03:48:00
【问题描述】:

我已经使用 Mingw GCC 编译器在我的 VS 代码中完成了这段代码,我得到的输出是“No”而不是“Yes”?很明显5>4>3,那么背后的原因是什么?

#include <stdio.h>

int main()
{
    int a = 4;
    if (5 > a > 3)
        printf("Yes");
    else
        printf("No");
    return 0;
}
Expected Output: Yes
Original Output: No

【问题讨论】:

  • 因为 C 中的 5 &gt; a &gt; 3 与数学中的不一样。它被评估为(5 &gt; a) &gt; 3,这是错误的
  • “很明显5>4>3”->第5&gt;411 &gt;3是0。
  • Python 可能是唯一一种能够以您期望的方式工作的相当流行的语言。
  • 我不知道这是真诚地试图“回收”一个老问题,是一种嘲笑关闭决定的报复性尝试,还是一种纯粹的破坏行为。但是,以防万一这是一个诚实的错误,您不能编辑您的问题以将其替换为一个完全不同且不相关的问题(关于 '*' 打印的时间复杂度)。我回滚到原来的问题

标签: c


【解决方案1】:

(5 &gt; a &gt; 3) 不是你想的那个意思。它转换为 (5&gt;a) &gt; 3(5&gt;a) 计算为 1。然后,1&gt;3 的计算结果为假,因此您得到“否”。

做你想做的,你做if ( (5 &gt; a) &amp;&amp; (a &gt; 3) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2021-05-13
    相关资源
    最近更新 更多