Online Compiler C

#include <stdio.h> int main() { int sum,x,y,z,rest; scanf("%d",&sum) x=sum/1000; y=(sum%1000)/500; z=(sum%500)/100; rest=sum-(1000*x+500*y+100*z); printf("1000=%d\n500=%d\n100=%d\nREST=%d\n",x,y,z,rest); return 0; }
这段代码的目的是将输入的金额分解为1000元、500元和100元面额的张数,并计算剩余金额。代码逻辑基本正确,但有一个语法错误。

- 第6行 `scanf` 语句末尾缺少分号,导致编译错误。C语言中每条语句必须以分号结束。
- 变量 `rest` 的计算可以更简洁,直接使用取模运算 `sum % 100` 即可得到剩余金额,无需手动减去已分配的面额。