gpt4 book ai didi

c - 访问二维数组中的越界单元格

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:45 24 4
gpt4 key购买 nike

在我的生活游戏中,我真的看不出我的检查邻居功能有什么问题。它检查所有 8 个邻居,然后根据存活计数将被检查的细胞分配给存活或死亡,然后更新板。

void check_neighbours (int board[][COL])

{

int living = 0, i, j, k, l;
int new_board[ROW][COL];

for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
if ((board[i + 1 % ROW][j % COL]) == '#')
{
living++;
}
if ((board[i - 1 % ROW ][j % COL]) == '#')
{
living++;
}
if ((board[i % ROW][j + 1 % COL]) == '#')
{
living++;
}
if ((board[i % ROW][j - 1 % COL]) == '#')
{
living++;
}
if ((board[i + 1 % ROW][j + 1 % COL]) == '#')
{
living++;
}
if ((board[i - 1 % ROW ][j + 1 % COL ]) == '#')
{
living++;
}
if ((board[i + 1 % ROW ][j - 1 % COL ]) == '#')
{
living++;
}
if ((board[i - 1 % ROW ][j - 1 % COL ]) == '#')
{
living++;
}
if (living == 3)
{
new_board[i][j] = '#';
}
if (living <= 2)
{
new_board[i][j] = '-';
if (living < 3)
{
new_board[i][j] = '-';
}
}
}


for (k = 0; k < ROW; k++)
{
for (l = 0; l < COL; l++)
{
board[k][l] = new_board[k][l];
}
}
}
}

编辑:添加了括号但仍然打印相同

最佳答案

尝试在你的数学中加入一些括号:

board[(i + 1) % ROW]

安全得多
board[i + 1 % ROW]

关于c - 访问二维数组中的越界单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33306161/

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