以下代码应该将一笔钱(例如:325.200)划分为50,10,5和1的卡片。其余的(小数部分单独显示)。
program Cards;
uses wincrt;
var
d50, d10, d5, d1, dm: integer;
s: real;
begin
readln(s);
d50 := trunc(s) div 50;
d10 := trunc(s) mod 50 div 10;
d5 := trunc(s) mod 10 div 5;
d1 := trunc(s) mod 5;
dm := trunc((frac(s) * 1000));
writeln('50: ', d50, ' 10: ', d10, ' 5: ', d5, ' 1: ', d1, ' m: ', dm);
end.
总和356.200出现问题。显示的dm
是199而不是200。