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

#include <stdio.h> int main() { int amount,a,b,c,REST; scanf("%d",&amount); a=amount/1000; b=amount/100; c=amount/10; REST=amount-1000*a-100*b-10*c; printf("1000=%d\n500=%d\n100=%d\nREST=%d\n",a,b,c,REST); return 0; }
这段代码试图将输入的金额分解为1000元、500元、100元等面额,但计算逻辑有误。

- 变量b和c的计算方式不对。b = amount/100 得到的是千位和百位一起的值,而不是单独的500元张数。同样,c = amount/10 得到的是千位、百位和十位一起的值。
- 你需要重新思考如何依次减去已计算的大面额,再计算下一个小面额。例如,先计算1000元张数,然后用剩余金额计算500元张数,依此类推。