C 困惑于为什么代码不能正确运行
**我做了一些修改,我只是想知道你是否能帮我找出它为什么不运行。当我运行它时,文本被打印出来,但输入从未停止运行** 该程序旨在复制(?)贪婪算法。它首先询问用户所欠的零钱是多少,然后提供可以兑换的最小硬币数量 我非常感谢您对我的代码的任何帮助C 困惑于为什么代码不能正确运行,c,floating-point,rounding,infinite-loop,C,Floating Point,Rounding,Infinite Loop,**我做了一些修改,我只是想知道你是否能帮我找出它为什么不运行。当我运行它时,文本被打印出来,但输入从未停止运行** 该程序旨在复制(?)贪婪算法。它首先询问用户所欠的零钱是多少,然后提供可以兑换的最小硬币数量 我非常感谢您对我的代码的任何帮助 据我所知,这部分 while (change != 0) change = change * 100; 如果change为非零时启动,则为无限循环。根据平台的不同,乘法最终会达到NaN或正无穷大,从而导致循环永远继续。而(更改>0)没有任何意
据我所知,这部分
while (change != 0)
change = change * 100;
如果
change
为非零时启动,则为无限循环。根据平台的不同,乘法最终会达到NaN
或正无穷大,从而导致循环永远继续。而(更改>0)
没有任何意义。若条件为真,你们将得到无限循环进行取整。如果它是假的,就没有舍入。舍入结果未使用,因此丢失。有人在这里回答:为什么要将其舍入为整数?将0.478转换为int会得到0,因为0和1之间没有整数值。请提供最小的可复制示例。如果圆形不按预期工作,则移除与圆形不相关的任何东西。提供你收到了什么,你期望得到什么。我发现你的代码中包含了与round无关的bug。找到他们是你的工作。调试代码。
change = GetFloat() * 100;
while (change != 0)
// change = change * 1000;
// int owed = round(change);
while (change != 0)
change = change * 100;