C语言 计算最少找零钱币数题目中有0.25,0.10,0.05,0.01四个单位,需要用贪心算法计算最少钱币数.现在我遇到的问题是输入0.41时,我程序的计算结果是3(正确值为4),仔细检查发现问题出现在0.01

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 10:11:01
C语言 计算最少找零钱币数题目中有0.25,0.10,0.05,0.01四个单位,需要用贪心算法计算最少钱币数.现在我遇到的问题是输入0.41时,我程序的计算结果是3(正确值为4),仔细检查发现问题出现在0.01
xTN@DEDd`$n!IRJH RBIʖ"ZQ/g< ہ"5f:-gҰD6JÉ\.T2a\*K*I55CI^'FgF)*kē@+㲠4TUъ.*2.D(Y, 2?4 `ilED(Le4Wt,B<ljSb"r5t1 ?9u .}ե!n!ߖh2:':j|UuLz0A黻*L&b(a||&KIwI xlZN

C语言 计算最少找零钱币数题目中有0.25,0.10,0.05,0.01四个单位,需要用贪心算法计算最少钱币数.现在我遇到的问题是输入0.41时,我程序的计算结果是3(正确值为4),仔细检查发现问题出现在0.01
C语言 计算最少找零钱币数

题目中有0.25,0.10,0.05,0.01四个单位,需要用贪心算法计算最少钱币数.

现在我遇到的问题是输入0.41时,我程序的计算结果是3(正确值为4),仔细检查发现问题出现在0.01这里,问题有两处:

if(change >= 0.01)当change=0.01时,依然不能执行if语句内的代码块

num += change / 0.01当change=0.01时,change/0.01=0.999999,而num是int型

代码截图如下:

求各路大侠相助啊!不胜感激!


C语言 计算最少找零钱币数题目中有0.25,0.10,0.05,0.01四个单位,需要用贪心算法计算最少钱币数.现在我遇到的问题是输入0.41时,我程序的计算结果是3(正确值为4),仔细检查发现问题出现在0.01
double cc;int num;
……
if(change>=0.01)
{
cc+=change/0.01;
}
if(num=(int)(cc+0.5)>cc) return num;
else return (int)cc;
}