Online Compiler C

#include <stdio.h> int main() { int n,sum; while(n!=0) sum+=n%10; n=n/10; printf("%d",sum); return 0; }
这段代码试图计算一个整数各位数字之和,但存在几个问题。

- 变量 `n` 和 `sum` 没有初始化,它们的初始值是不确定的,会导致错误结果。
- `while` 循环没有使用花括号 `{}`,因此循环体只包含 `sum+=n%10;` 这一行,而 `n=n/10;` 不在循环内,导致循环无法正确更新 `n`,可能变成死循环。
- 代码没有从用户输入获取 `n` 的值,程序会直接使用未初始化的 `n`。

- 思考如何确保变量在使用前有明确的初始值,比如给 `sum` 赋值为 0,并考虑如何让用户输入一个整数。
- 注意 `while` 循环的语法:如果需要执行多条语句,必须用花括号括起来,否则只有第一条语句属于循环体。