Online Compiler C

#include <stdio.h> int main() { int M,a,b,c; scanf("%d",&M); a = M / 100; b = (M % 100) / 10; c = M - a*100 + b*10; M = a+b+c; printf("%d",M); return 0; }
这段代码的目的是读取一个三位数,计算其各位数字之和,并输出结果。但代码中存在一个计算错误。

- 变量 `c` 的计算方式不正确。你试图用 `M - a*100 + b*10` 来得到个位数,但这里减法和加法的优先级会导致错误结果。实际上,个位数应该通过 `M % 10` 来获取。
- 另外,最后将 `M` 重新赋值为各位数字之和,导致原始输入值丢失,但如果你只是想输出和,这样写是可以的。