我的函数显示正确的数字,但不会将其添加到变量中

时间:2013-11-14 18:39:54

标签: c function

我是编码的新手,并决定玩游戏!我最近添加了一个饥饿功能,所以我做了一个功能,以增加饥饿,然后检查它是否已达到10(游戏结束)。它正确地显示了正确的饥饿量,但它没有将正确的饥饿水平存储到饥饿变量中。

double addHunger(double hunger,int add)
{
hunger = hunger+add;
if (hunger >= 10)
{
    cout <<"\n\nGame over! You starved to death, havn't you heard of eating you moronic idiot?\n";
    exit(1);
}
else
{   
    cout <<"\n\nYou feel your stomach growl. Your hunger is now " <<hunger<<"\n\n";
}
} 

例如,饥饿最初是6,当我实现这个功能并增加1个饥饿时,它会说饥饿现在是7,但是主体中的实际数量仍然是6,这意味着如果你减少你的饥饿感一个,它将下降到5而不是6。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

hunger作为参考:

double addHunger(double &hunger,int add)

答案 1 :(得分:0)

当您调用将它们用作参数的函数时,将复制诸如双精度的原始值。这意味着当您进入addHunger函数时,您只能访问饥饿变量的新副本。更改其值不会影响主函数中饥饿变量的值。