对为什么代码不正确 运行 感到困惑
Confused with why code not running correctly
**我做了一些更改,我只是想知道您是否可以帮助我找出它不是 运行ning 的原因。当我 运行 它打印文本但输入永远不会停止 运行ning。 **
该程序旨在复制(?)贪心算法。它首先询问用户欠了多少零钱,然后提供了可以用来找零的最少硬币数量。
如果您能为我的代码提供任何帮助,我将不胜感激。
#include <stdio.h>
#include <math.h>
int main(void)
{
//declared variables
float change;
int num = 0;
// prompts for amount owed
printf("Please provide the amount owed: ");
change = GetFloat();
while (change != 0)
change = change * 100;
int owed = round(change);
{
// if statements for calculating number of coins required
if (owed >= 25)
{
owed = owed - 25;
num ++;
}
if (owed >= 10 && owed < 25)
{
owed = owed - 10;
num ++;
}
if (owed >= 5 && owed < 10)
{
owed = owed - 5;
num ++;
}
if (owed >= 1 && owed < 5)
{
owed = owed - 1;
num ++;
}
}
printf("%d\n", num);
}
当我修改 while 语句并注释掉 'change = change * 100;'
它开始工作。但是,在这样做时,round 函数不会执行。
change = GetFloat() * 100;
while (change != 0)
// change = change * 1000;
// int owed = round(change);
据我了解,部分
while (change != 0)
change = change * 100;
如果在 change
非零时开始, 是一个无限循环。根据平台的不同,乘法最终会达到 NaN
或正无穷大,从而导致循环永远持续下去。
**我做了一些更改,我只是想知道您是否可以帮助我找出它不是 运行ning 的原因。当我 运行 它打印文本但输入永远不会停止 运行ning。 ** 该程序旨在复制(?)贪心算法。它首先询问用户欠了多少零钱,然后提供了可以用来找零的最少硬币数量。
如果您能为我的代码提供任何帮助,我将不胜感激。
#include <stdio.h>
#include <math.h>
int main(void)
{
//declared variables
float change;
int num = 0;
// prompts for amount owed
printf("Please provide the amount owed: ");
change = GetFloat();
while (change != 0)
change = change * 100;
int owed = round(change);
{
// if statements for calculating number of coins required
if (owed >= 25)
{
owed = owed - 25;
num ++;
}
if (owed >= 10 && owed < 25)
{
owed = owed - 10;
num ++;
}
if (owed >= 5 && owed < 10)
{
owed = owed - 5;
num ++;
}
if (owed >= 1 && owed < 5)
{
owed = owed - 1;
num ++;
}
}
printf("%d\n", num);
}
当我修改 while 语句并注释掉 'change = change * 100;' 它开始工作。但是,在这样做时,round 函数不会执行。
change = GetFloat() * 100;
while (change != 0)
// change = change * 1000;
// int owed = round(change);
据我了解,部分
while (change != 0)
change = change * 100;
如果在 change
非零时开始, 是一个无限循环。根据平台的不同,乘法最终会达到 NaN
或正无穷大,从而导致循环永远持续下去。