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

#include <stdio.h> int main() { int a; if (scanf("%d", &a )== 1) { int sum=0; if (a==0) { sum=0; }else{ while(n>0){ sum+=n%10; n/=10; } } printf("%d\n",sum); } return 0; }
这段代码试图计算一个整数的各位数字之和,但存在一个关键问题:代码中使用了变量 `n`,但从未定义或赋值。实际上应该使用从输入读取的变量 `a` 来操作。

- 代码中 `while(n>0)` 里的 `n` 没有声明,编译器会报错。你需要使用已经存在的变量 `a`,但注意直接修改 `a` 会丢失原始值,可以考虑用另一个变量来保存 `a` 的副本。
- 当 `a` 为负数时,循环条件 `n>0` 会直接不成立,导致结果为0。思考一下如何处理负数的情况,比如先取绝对值。