Online Compiler C

#include <stdio.h> int main() { int N,A,number=0; scanf("%d",&N); while(N > 0) { A=N%10; number = number + A; N=N-A } printf("%d",number); return 0; }
这段代码试图计算一个整数的各位数字之和,但存在逻辑错误。当前代码在循环中每次减去个位数,而不是去掉最后一位数字,导致循环无法正确结束。

- 循环中 `N=N-A` 只是减去了个位数,但 `N` 的位数没有减少,例如输入123,第一次循环后N变成120,下一次循环又会取到0,导致无限循环或错误结果。
- 要正确去掉最后一位数字,应该使用整数除法 `N = N / 10`,而不是减法。