这段代码试图判断三个数是否能构成三角形,但存在多个语法和逻辑错误。 - 第4行 `scanf(%d%d%d,&a,&b,&c);` 中,格式字符串缺少双引号,应该写成 `scanf("%d%d%d", &a, &b, &c);`。 - 第6-9行中,你错误地修改了变量 `b` 和 `c` 的值,而不是更新 `max`。正确的思路应该是:如果 `b > max`,则把 `max` 更新为 `b`,而不是把 `b` 改成 `max`。同样处理 `c`。 - 第11行和第13行的 `if` 语句后面多了分号,并且条件没有用括号括起来。正确的写法是 `if (sum > max)` 和 `if (sum < max)`,且后面不能加分号。 - 三角形判断的条件是:任意两边之和大于第三边。你只比较了 `sum`(即 `a+b+c-max`)与 `max` 的大小,这实际上是检查最大边是否小于另外两边之和,这个思路是对的,但需要确保 `sum` 计算正确。注意你第10行计算 `sum` 时减去了 `max`,但 `max` 的值可能已经被错误地修改了,所以需要先修正 `max` 的更新逻辑。
Copy this url:
QR-code: