因此,我正在研究掷骰子游戏,该游戏的一个方面是,赌注必须小于或等于平衡才能继续(所以您下的赌注不会超过您的下注)。现在,我正在开发自己的完整游戏,但是要发布的代码太多,所以我基本上写出了我想做的事情。

我发布的代码假定它是一种损失,但是由于某种原因它不能正确减去。在我的实际游戏中,它完全忽略了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;
}


如果有人对我如何进行这项工作有任何建议,我将不胜感激。谢谢 :)

最佳答案

我重新格式化了您的代码,现在应该可以了。

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;
 }


我所做的更改首先被替换为returntypes表单

int




double


其次,更重要的是,我将此函数的第二个参数更改为

int checking_wager(double balance, double wager)


指向双精度指针

double checking_wager(double balance, double *wager)


之所以这样做,是为了从功能上返回新的赌注。

10-06 06:59