Online Compiler C

#include <stdio.h> int main(void) { int a, b, c; scanf("%d%d%d", &a, &b, &c); if (a +b>c&&b+c>a&&a=c>b) printf("YES"); else printf("NO"); return 0; }
这段代码试图判断三个整数能否构成三角形。它读取三个整数,然后检查两边之和是否大于第三边。但代码中存在一个明显的错误。

- 条件中的 `a=c>b` 写错了。在C语言中,`=` 是赋值运算符,不是比较运算符。这里应该是判断 `a + c > b`,但你写成了赋值和比较的混合,这会导致逻辑错误。
- 另外,注意运算符优先级:`a + b > c` 是正确的,但 `a=c>b` 会被解释为 `a = (c > b)`,即先比较 `c > b` 得到0或1,再赋值给 `a`,这完全改变了程序的行为。

检查你的条件表达式,确保所有比较都使用 `==` 或 `>` 等正确的运算符,并且每个条件都完整写出。