Online Compiler C

#include <stdio.h> int digit_sum(unsigned int n) { int sum=0; while(n>0) { sum+=n%10; n=n/10; } return sum; }
这段代码定义了一个函数 `digit_sum`,用于计算一个无符号整数的各位数字之和。它通过循环每次取末位数字(n%10)累加到 sum,然后去掉末位(n/10),直到 n 变为 0。

- 函数功能正确,但注意参数类型是 `unsigned int`,如果传入负数会导致隐式转换,可能产生意外结果。
- 变量 `sum` 是 `int` 类型,而 `n` 是 `unsigned int`,在累加时类型混合是安全的,但若数字很大(如接近无符号最大值),sum 可能溢出,因为 int 范围较小。