在线编译器 C

#include <stdio.h> int main() { int amount,a,b,c,REST; scanf("%d",&amount); a=amount/1000; REST=amount-1000*a; b=REST/500; REST=REST-500*b; c=REST/100; REST=REST-100*c; printf("1000=%d\n500=%d\n100=%d\nREST=%d\n",a,b,c,REST); return 0; }
这段代码的功能是:输入一个金额,然后计算这个金额能兑换成多少张1000元、500元和100元的纸币,最后输出每种纸币的张数和剩余零钱。

代码的逻辑基本正确,但有一个小问题需要注意。

- 变量名 `REST` 全部大写,虽然语法上没问题,但通常C语言中全大写用于宏定义,建议使用小写 `rest` 更规范。
- 代码中 `REST` 在每次计算后都被更新,但最后输出的 `REST` 是减去所有纸币后的剩余金额,这个剩余金额应该小于100元。你可以检查一下,如果输入的金额不是100的倍数,剩余部分是否正确显示。