C++;节目过早结束 我对C++非常陌生,我已经写了这段代码。按照这个顺序设计的。。 1.询问姓名然后欢迎此人 2.要求他们选择武器 3.选择一个随机数并损坏一只熊猫

C++;节目过早结束 我对C++非常陌生,我已经写了这段代码。按照这个顺序设计的。。 1.询问姓名然后欢迎此人 2.要求他们选择武器 3.选择一个随机数并损坏一只熊猫,c++,C++,我已经完成了这三个步骤。然后我决定也许我可以通过使用rand()函数括号中的变量来改变随机数的范围。这并没有按计划进行,所以我试着返回。提前感谢收到的任何帮助。我不知道如何通过互联网搜索这个,所以我来到了这里。。希望有人能发现我的问题。我正在使用netbeans IDE 我的问题: 它首先询问我的名字,然后我输入我的名字,它欢迎我。但它完成了代码。甚至在尝试代码的其余部分之前。我的想法是,我显然错过了一些我本该改变的东西 Welcome to panda hunter! Please enter

我已经完成了这三个步骤。然后我决定也许我可以通过使用rand()函数括号中的变量来改变随机数的范围。这并没有按计划进行,所以我试着返回。提前感谢收到的任何帮助。我不知道如何通过互联网搜索这个,所以我来到了这里。。希望有人能发现我的问题。我正在使用netbeans IDE

我的问题: 它首先询问我的名字,然后我输入我的名字,它欢迎我。但它完成了代码。甚至在尝试代码的其余部分之前。我的想法是,我显然错过了一些我本该改变的东西

Welcome to panda hunter! Please enter your name: Darryl
Welcome!, Darryl!

RUN SUCCESSFUL (total time: 3s)
但我已经看了很多遍,没有发现任何错误。我的想法是,这条路线有问题,因为这是它无法做到的地方,也无法走得更远:

    cout << "Pick your weapon of choice! Then press enter to attack: ";
cout>name;
返回名称;
}
弦武器选择{
弦武器;
cin>>武器;
返回武器;
}
int rand(){
int damagePanda=rand()%20+1;
返程损伤;
}
int main(){
srand(时间(0));
int pandaHealth=100;
int userHealth=100;
库特
递归调用。你可能在这里搞砸了

编译器应该在这里警告你!不知道为什么没有

改为

int myrand(){
    int damagePanda = rand() % 20 + 1;
    return damagePanda;
}
也改变

cout << "You surprise the panda with your " 
<< weaponChoice() << ", dealing " <<   rand() << " damage!";

这最后的改变可能取决于你的应用程序逻辑——我没有尝试理解它。

>代码> GETNEX/CODEN>函数看起来很奇怪。缺少的Enl。我不是C++,但是也许<代码> cUT,你需要刷新输出缓冲区。标签上写着“代码> + 1漂亮的catch”。虽然我不认为我见过“[可能]无限递归调用”。之前出现错误。您还应存储myrand()结果是一个int而不是两次调用它,这样你就可以在cout和实际伤害计算中使用相同的值。现在工作得很好!非常感谢。是的。编译器应该说些什么,但显然它不想说。我还添加了一个位,船长说‘谢谢你,马修,你的意思是这样的:int randomN’umber=myrand();使其调用。然后,当我需要另一个随机数时,我可以在该int上再次调用该函数?@Darryl我认为Mathiew建议,如果你只需要1个随机数,你只需要调用函数一次,存储它的值并重用它-当然,如果你想要2个随机数,你需要重复调用但是我们不知道你的程序逻辑,所以我们不知道你需要多少随机数。
int myrand(){
    int damagePanda = rand() % 20 + 1;
    return damagePanda;
}
cout << "You surprise the panda with your " 
<< weaponChoice() << ", dealing " <<   rand() << " damage!";
cout << "You surprise the panda with your "  
<< weaponChoice() << ", dealing " <<   myrand() << " damage!";
pandaHealth = pandaHealth - rand();