Online Compiler C

#include <stdio.h> int main() { int x,y,z,s,sum; scanf("%d%d%d%d",&x,&y,&z,&sum); x=sum/100; y=(sum%100)/10; z=(sum%10); s=x+y+z; printf("%d\n",s); return 0; }
这段代码试图计算一个四位数的各位数字之和,但存在逻辑错误。它先读取四个整数,然后又把输入的 sum 当作一个四位数来拆解各位数字,导致变量使用混乱。

- 你读取了四个整数 x, y, z, sum,但后面又把 sum 当作一个整体数字来分解,这会导致 x, y, z 被覆盖,并且 sum 原本的值被丢弃。你需要明确:到底是要输入一个四位数,还是输入四个单独的数字?
- 如果目标是输入一个四位数,那么只需要一个变量(比如 num),然后用 num/1000、num/100%10 等运算来获取各位数字。当前代码中 sum 被当作四位数,但 x, y, z 又被重新赋值,逻辑上不连贯。