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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 02:33:53
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
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;
}