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

#include <stdio.h> int main() { int number, a, b, c, max; scanf("%d", &number); a = number / 100; b = (number % 100) / 10; c = number % 10; max = a; if(b > max){ b = max; } if(c > max){ c = max; } printf("%d", max); return 0; }
这段代码的目的是求一个三位数的各位数字中的最大值,但实现有错误。它先分解出百位a、十位b、个位c,然后试图找出最大值并输出。

- 在比较和赋值时,你写成了 `b = max` 和 `c = max`,这会把max的值赋给b和c,而不是更新max。应该反过来,把较大的数赋给max。
- 另外,变量max初始设为a是正确的,但后续比较逻辑需要修正:当b或c大于max时,应该让max等于那个更大的数。