gpt4 book ai didi

c - C 中的二维数组网格,每个坐标具有不同的字符

转载 作者:行者123 更新时间:2023-11-30 14:50:01 31 4
gpt4 key购买 nike

int attack_grid[10][10] = { {0} };

void drawAttackGrid()
{
int i, j, x = 0, y = 0;
for (i = 0; i <= 10 - 1; i++) {
for (j = 0; j <= 10 - 1; j++) {
if (attack_grid[x][y] > 0)
printf(" * ");
else if (attack_grid[x][y] < 0)
printf(" ~ ");
else
printf(" ? ");
y++;
}
printf("\n");
x++;
}
}

所以我试图根据其他仅用零填充的 10x10 数组中的坐标值用不同的字符填充这个 10x10 数组(我稍后会更改这些值,这就是为什么我需要它是通用的)。根据我的代码,它应该只打印“?”,但输出中也有一些“*”。有人可以解释一下为什么我会得到那些“*”吗?

最佳答案

由于 y 的值,您的程序具有未定义的行为。

y 在内循环中递增,但在重复外循环时永远不会重置为 0。

在外循环的第二次运行中,y 的值将从 10 开始,而不是从 0 开始。

在外循环的第三次运行中,y 的值将从 20 开始,而不是从 0 开始。

对于外循环的剩余迭代,这将继续下去。

您可以删除冗余索引xy。使用 attack_grid[i][j] 代替 attack_grid[x][y]

关于c - C 中的二维数组网格,每个坐标具有不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49241773/

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