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

#include <stdio.h> int main() { int x, digit = 0; scanf("%d", &x); while(x>=1){ digit = digit + x%10; x= x/10; } printf("%d", digit); return 0; }
这段代码的功能是计算一个整数各位数字的和。它通过循环不断取出当前数字的最后一位,累加到变量digit中,然后去掉最后一位,直到数字变为0。

- 当输入负数时,循环条件x>=1会直接不满足,导致输出0,但负数各位数字的和应该如何处理?考虑一下循环条件是否应该包含负数的情况。
- 当输入0时,循环也不会执行,输出0,但0的各位数字和应该是0,这里结果正确,但逻辑上是否应该特殊处理?思考一下循环条件能否统一处理所有整数。