因此,我正在製作一個擲骰子游戲,遊戲的一個方面就是下注必須小於或等於餘額才能繼續(所以您不會超過下注你有)。現在我已經完成了我正在開發的完整遊戲,但是發佈的代碼太多,所以我基本上寫出了我正在嘗試做的事情。下注必須小於餘額才能繼續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'。 –