因此,我正在制作一个掷骰子游戏,游戏的一个方面就是下注必须小于或等于余额才能继续(所以您不会超过下注你有)。现在我已经完成了我正在开发的完整游戏,但是发布的代码太多,所以我基本上写出了我正在尝试做的事情。下注必须小于余额才能继续C
我发布的代码假设它是一个损失,但由于某种原因它不会正确减去。在我的实际游戏中,它完全忽略了while函数。如果我的余额是20,我打赌22它给了我-2。我无法弄清楚如何正确地做这项工作..
#include<stdio.h>
int main(void)
{
double balance = 0.0, wager = 0.0;
balance = get_balance();
wager = get_wager();
checking_wager(balance, wager);
loss(balance, wager);
return 0;
}
double get_balance(void)
{
double balance = 0.0;
balance = printf("Enter your balance: ");
scanf("%lf", &balance);
return balance;
}
double get_wager(void)
{
double wager = 0.0;
wager = printf("Enter your wager: \n");
scanf("%lf", &wager);
return wager;
}
double checking_wager(double balance, double wager)
{
while (wager > balance)
{
printf("The wager is invalid\n");
wager = get_wager();
}
return 0;
}
double loss(double balance, double wager)
{
balance -= wager;
printf("Balance: %.2f", balance);
return balance;
}
如果任何人有我怎样才能使这项工作有什么建议,我将不胜感激。谢谢:)
第一个问题:'get_balance'返回一个'int'到'balance',这是'double'。与'get_wager'相同。我想有关于此的编译器警告。 – yano
'失(双衡,双下注)'!你还需要纠正返回类型的功能,需要'双'。 –
'double checking_wager(double balance,double wager)'应该是'double checking_wager(double balance,double * wager)'在函数内部有'* wager = get_wager()'....或者有'return wager' ,而不是'返回0'。 –