在线编译器 C

#include <stdio.h> int digit_sum(unsigned int n) { int temp=0; if(n==0) { printf("%d\n",temp) } while(n/10!=0) { temp=temp+n%10; } printf("%d\n",temp); return 0; }
这段代码试图计算一个整数的各位数字之和,但存在几个问题。

首先,代码中有一个语法错误:`printf` 语句后面缺少分号。另外,`while` 循环会陷入死循环,因为循环条件 `n/10!=0` 永远为真,而循环体内没有改变 `n` 的值。

- 检查 `printf` 语句是否以分号结尾,这是C语言的基本语法要求。
- 思考 `while` 循环中如何更新 `n` 的值,使得每次循环都能去掉最后一位数字,否则循环无法结束。