Онлайн компилятор C

#include <stdio.h> int main() { int a, b, c; scanf("%d%d%d", &a, &b,&c); if (a + b > c && a + c > b && b + c > a) { printf("YES\n"); } else { printf("NO\n"); } return 0; }
这段代码的功能是:读入三个整数,判断它们能否构成一个三角形的三条边长。如果能,输出"YES",否则输出"NO"。判断依据是三角形两边之和大于第三边。

- 你的代码逻辑是正确的,但有一个潜在问题:变量a、b、c的类型是int,而三角形边长通常可以是正数。如果输入包含负数或零,你的程序可能会错误地输出"YES"。例如输入-1, -2, -3,虽然两边之和大于第三边,但边长不能为负或零。你需要考虑如何确保输入的值是有效的正数。

- 另外,你的代码没有检查scanf的返回值。如果用户输入的不是整数,程序可能会产生未定义行为。建议养成检查输入是否成功的习惯。