Онлайн компилятор 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-1000a-100b-10c; printf("1000=%d\n500=%d\n100=%d\nREST=%d\n",a,b,c,REST); return 0; }
这段代码试图将输入的金额分解为1000、100、10面额的张数,但计算逻辑有误。当前代码中,变量b和c的计算方式不对,导致它们包含了更高面额的部分,而REST的计算也使用了错误的变量。

- 变量b和c的计算没有减去更高面额的部分。例如,b = amount / 100 会得到包含千位在内的百位数量,而不是单独的100面额张数。你需要思考如何从amount中逐步减去已计算的面额部分。
- REST的计算中使用了未定义的乘法语法(如1000a),这在C语言中是不合法的。你需要使用正确的乘法运算符,并确保REST是减去所有已计算面额后的剩余值。