gpt4 book ai didi

c++ - (C++) 随机数相等,但程序说它们不相等

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:41 25 4
gpt4 key购买 nike

我是初学者,我创建了一个老虎机模拟器。轮子旋转,x、y 和 z 被设置为随机数。我有一个 if 语句来检查是否 x == y == z。当程序运行时,数字实际上是相等的,它运行我的代码说它们不相等。为什么会这样?

例如,cout 语句会说 2 -- 2 -- 2,然后在它们不相等时转到我的 if 语句,我得到“你输了”代码。

我应该补充一点,这并不是每次都会发生。有时它会在它们相等时正确执行 if 语句。这很奇怪。

    srand(time(0));

int x = (rand() % 2) + 1;
int y = (rand() % 2) + 1;
int z = (rand() % 2) + 1;

std::cout << "The spin results are... " << x << " -- " << y << " -- " << z << std::endl << std::endl;

if( x == y == z)
{
std::cout << "You win!\n\n";
playerCoins = playerCoins + (coinsBet * 2);
}
else
{
std::cout << "You lose!\n\n";
}

最佳答案

x == y 可能会产生 0 或 1,具体取决于它们的真值或假值。然后将 0 或 1 与 z 进行比较,这就是给定结果为假的原因。

正确的方法是检查x是否等于z和y是否等于z,这当然也意味着x等于y。 (x == z) && (y == z)

关于c++ - (C++) 随机数相等,但程序说它们不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104547/

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