Online Compiler C

#include <stdio.h> int main() { int M,a,b,c,REST; scanf("%d",&M); a = M/1000; b = (M%1000)/500; c = (M%500)/100; REST = M - a*1 - b*1 - c*1; printf("1000 = %d,500 = %d 100 = %d RESY = %d",a,b,c,REST); return 0; }
这段代码试图将输入的金额 M 分解成 1000元、500元和100元面额的张数,但计算逻辑有误。

- 变量 REST 的计算中,你减去了 a*1、b*1、c*1,这实际上只减去了张数,而不是面额对应的金额。应该减去 a*1000、b*500、c*100 才能得到剩余金额。
- 变量名 REST 和输出中的 RESY 不一致,这会导致输出结果中 RESY 显示为未定义的值(实际是 REST 的值,但拼写错误可能造成混淆)。