gpt4 book ai didi

我的代码中的计算不正确

转载 作者:行者123 更新时间:2023-11-30 19:38:11 24 4
gpt4 key购买 nike

我正在尝试解决 CS50 的贪婪问题,但计算不正确。我总是留下 0.01 而不是 0.00 的剩余值。一切都进展顺利,除了最后的便士。我不知道该怎么办。当您输入更改时,请尝试 9.99。在没有便士的情况下,它工作得很好。

非常感谢!

int main()
{
// declaring variables for coins

float const qtr = 0.25;
float const dimes = 0.10;
float const nick = 0.05;
float const penny = 0.01;

//declaring variables for coin counters

int qtr_count = 0;
int dimes_count = 0;
int nick_count = 0;
int penny_count = 0;

//declaring variables for total debt and rest of debt

float total;
float rest;

//loop for testing is the number entered valid

do
{
printf("Enter the ammount of money he owns:\n");
scanf("%f", &total);
}
while (total < 0.00) ;

rest = total;

//Loop for calculating coins

while (rest >= qtr)
{
qtr_count++;
rest -= 0.25;
}

while (rest >= dimes)
{
dimes_count++;
rest -= 0.10;
}

while (rest >= nick)
{
nick_count++;
rest -= 0.05;
}

while (rest >= penny)
{
penny_count++;
rest -= 0.01;
}

printf("You need go give: \n %i quarters, \n %i dimes, \n %i nick, \n %i pennies \n", qtr_count, dimes_count, nick_count, penny_count);

return 0;

}

最佳答案

问题可能是浮点运算并不总是精确的。我建议您仅使用整数。让人们输入以美分为单位的金额(或乘以 100)。这样您就不会遇到任何浮点运算问题,而且效率也会更高。

关于我的代码中的计算不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com