Online Compiler C

#include <stdio.h> int main() { int a; scanf("%d",&a); int sum=0; while(a=0) { sum+=a%10; a=a/10; } printf("%d",sum); return 0; }
这段代码的目的是计算一个整数的各位数字之和,但存在逻辑错误导致无法正确运行。

- 第7行的 `while(a=0)` 使用了赋值运算符 `=` 而不是比较运算符 `==`。这会将 `a` 赋值为0,导致循环条件永远为假,循环体不会执行。
- 循环条件应该是判断 `a` 是否不等于0,这样当 `a` 被不断除以10直到0时循环结束。