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

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

首先,变量名 `nunber` 拼写错误,后面又使用了 `number`,这会导致编译错误。其次,循环逻辑有问题:`N = N % 10` 会直接取最后一位,然后 `N` 变成个位数,循环无法正确遍历所有位。

- 检查变量名是否一致,`nunber` 和 `number` 是不同的变量。
- 思考如何逐位提取数字:通常先用 `% 10` 取最后一位,然后用 `/ 10` 去掉最后一位,而不是用 `% 10` 更新原数。