gpt4 book ai didi

c++ - 二维数组未正确填充或...? C++

转载 作者:行者123 更新时间:2023-11-28 00:39:58 25 4
gpt4 key购买 nike

我有一个严重的问题,我似乎无法解决。如果这是一个真正的新手问题,我深表歉意。

srand(117);
//enumeration type to keep track of which fish is which
enum CellState {EMPTY, FISH, SHARK};

//Creating the grid
CellState fishGrid[MAX_X][MAX_Y];
for(int m = 0; m < MAX_X; ++m)
{
for(int n = 0; n < MAX_Y; ++n)
{
int num = rand() % 2;
if(num == 0)
fishGrid[m][n] = EMPTY;
else
{
num = rand() % 2;
if(num == 0)
fishGrid[m][n] = SHARK;
else
fishGrid[m][n] = FISH;
}
}
}
//calculate how many on grid
if(stepsTaken % 5 == 0)
{
int fishAmount = 0;
int sharkAmount = 0;

for(int m = 0; m < MAX_X; m++)
{
for(int n = 0; n < MAX_Y; n++)
{
if(fishGrid[m][n] = FISH)
fishAmount++;
else if(fishGrid[m][n] = SHARK)
sharkAmount++;
}
}
cout << "FISH: " << fishAmount << endl
<< "SHARKS: " << sharkAmount << endl << endl;

出于某种原因,输出总是:鱼:100鲨鱼:0

我不一定明白。有人可以帮助我吗?谢谢。

最佳答案

= 指定 C++ 中的赋值 运算符。这意味着你在这里拥有的

            if(fishGrid[m][n] = FISH)
fishAmount++;
else if(fishGrid[m][n] = SHARK)
sharkAmount++;

if 条件中使用赋值 运算符。通过上面的内容,您可以使用 FISH 值覆盖整个网格。

C++ 中的相等比较由== 运算符执行。但是您已经知道了,因为您已经在 num 比较中使用了 ==。那你为什么要在这些网格比较中使用 =

关于c++ - 二维数组未正确填充或...? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372170/

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