gpt4 book ai didi

CS50 现金有效输入退出程序

转载 作者:行者123 更新时间:2023-11-30 20:09:26 30 4
gpt4 key购买 nike

我不确定为什么我的找零值在第二个循环中从未被评估,我的打印语句也没有在最后运行并输出硬币。当输入有效输入时,程序应将 float 转换为 int 并进入下一个 while 循环。然后根据更改值检查每个 if 语句中的条件是否为 true,直到 while 条件为 false。

#include <cs50.h>
#include <stdio.h>

int main(void) {

int coins = 0;
float n;
int change;
do
{
n = get_float("How much do I owe you? \n");
} while (n < 0); // continue prompt while true less than zero

change = n * 100;

while (change > 0)
{
if (change > 25) // change .25 cents
{
coins = coins + 1;
change = change - 25;
}
else if (change > 5 && change <= 10) // change 10 cents
{
coins = coins + 1;
change = change - 10;
}
else if (change > 1 && change <= 5) // change 5 cents
{
coins = coins + 1;
change = change - 5;
}
else // change 1 cents
{
coins = coins + 1;
change = change - 1;
}
return coins;
}
printf("%d\n", coins);
}

最佳答案

问题来自于 while 循环内的 return coin; 行。

你应该这样写:

while (change > 0) 
{
/*update coins and change
but do not use return.*/
}

printf("%d\n", coins);

/* as return will exit from your function,
you want it at the end*/
return coins;

关于CS50 现金有效输入退出程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52150783/

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