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

#include <stdio.h> int digit_sum(unsigned int n) { int result = 0; while (n > 0) { result = result + n % 10; n = n / 10; } return result; } int main() { unsigned int x; scanf("%d", &x); printf("%d", digit_sum(x)); return 0; }
这段代码定义了一个函数 `digit_sum`,用来计算一个无符号整数的各位数字之和。主函数从用户输入读取一个数,然后调用这个函数并输出结果。

- 在 `scanf` 中,你使用了 `%d` 来读取 `unsigned int` 类型的变量 `x`。`%d` 是用于有符号整数的格式符,对于无符号整数应该使用 `%u`。这可能导致输入大数时出现错误。
- 函数 `digit_sum` 的逻辑是正确的,它通过不断取模和整除来累加每一位数字。