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

#include <stdio.h> int main() { int money; scanf("%d",&money); int cnt1000=money/1000; money=money%1000; int cnt500=money/500; money=money%500; int cnt100=money/100; int rest=money%100; printf("1000=%d\n",cnt1000); printf("500=%d\n",cnt500); printf("100=%d\n",cnt100); printf("REST=%d",rest); return 0; }
这段代码的功能是:输入一个金额,计算并输出该金额由多少张1000元、500元、100元纸币组成,以及剩余不足100元的零钱。

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

- 在计算完100元纸币数量后,你使用了 `int rest=money%100;` 来获取剩余金额。但此时 `money` 变量已经在上一步被取模处理过,所以 `money` 的值已经是小于100的余数了。这里直接使用 `money` 本身作为剩余金额即可,不需要再对100取模。

提示:
- 检查 `rest` 的计算方式,思考 `money` 在每一步之后的值是什么。
- 尝试输入一个能被100整除的金额,观察输出结果是否符合预期。