Online Compiler C

#include <stdio.h> int main() { int M,a,b,c; scanf("%d",M); a = M / 100; b = (M % 100) / 10; c = a*100 + b*10; M = a+b+c; printf("%d",M) return 0; }
这段代码的目的是输入一个三位数,然后计算其百位、十位和个位数字的和,并输出这个和。但代码中存在几个问题。

- 第4行 `scanf("%d",M);` 缺少取地址符 `&`,应该写成 `&M`。
- 第7行 `c = a*100 + b*10;` 这里计算的是百位和十位组成的两位数,而不是个位数字。个位数字应该是 `M % 10`。
- 第8行 `M = a+b+c;` 中 `c` 不是个位数字,所以求和结果不正确。
- 第9行 `printf("%d",M)` 末尾缺少分号。