gpt4 book ai didi

C++ 抛硬币模拟器不工作

转载 作者:行者123 更新时间:2023-11-30 20:47:17 32 4
gpt4 key购买 nike

我应该用 C++ 创建一个抛硬币模拟游戏。我有这个代码;然而,我在所有 20 次抛掷中得到相同的输出,这意味着我要么在所有 20 次抛掷中得到正面,要么在所有 20 次抛掷中得到反面。我从来没有得到任何应有的变化。我觉得除了那一部分之外,我所有的事情都做对了。有人能指出我正确的方向吗?

代码:

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>

using namespace std;

class Coin
{
public:
Coin()
{
toss();
}

void toss()
{
unsigned seed = time(0);
srand(seed);

int num = (rand()%(2));

if (num == 0)
{
sideUp = ("Heads");
}
else
{
sideUp = ("Tails");
}
}

string getSideUp()
{
return sideUp;
}
private:
string sideUp;
};

int main()
{
int totHeads = 0, totTails = 0;

Coin flip;

cout<<"Flip #1: "<<flip.getSideUp()<<endl;

if (flip.getSideUp() == ("Heads"))
{
totHeads += 1;
}
else
{
totTails += 1;
}


for (int x = 2; x <= 20; x++)
{
flip.toss();
cout<<"Flip #"<<x<<": "<<flip.getSideUp()<<endl;

if (flip.getSideUp() == ("Heads"))
{
totHeads += 1;
}
else
{
totTails += 1;
}
}

cout<<"The total amount of heads were: "<<totHeads<<endl;
cout<<"The total amount of tails were: "<<totTails<<endl;

return 0;
}

最佳答案

您的 toss 函数会不断重新播种 PRNG。不要。
在程序开始时调用srand一次

关于C++ 抛硬币模拟器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27218980/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com