【发布时间】:2013-08-08 19:04:48
【问题描述】:
我正在用 C++ 创建一种扫雷程序,在运行了一些测试后,我发现由于某种原因我看不到,我的一个 for 循环永远不会结束。我已经查看了很长一段时间的代码,但看不到原因。非常感谢你帮助我,我对 c++ 有点陌生,很困惑。
代码如下:
for (int r = 0; r <= 8; r++)
{
for (int c = 0; c <= 8; c++)
{
int num = 0;
if (realmap[r][c] != 10)
{
if (r - 1 != -1 && realmap[r - 1][c] == 10)
{
num++;
}
if (r - 1 != -1 && c + 1 != 9 && realmap[r - 1][c + 1] == 10)
{
num++;
}
if (c + 1 != 9 && realmap[r][c + 1] == 10)
{
num++;
}
if (r + 1 != 9 && c + 1 != 9 && realmap[r + 1][c = 1] == 10)
{
num++;
}
if (r + 1 != 9 && realmap[r + 1][c] == 10)
{
num++;
}
if (r + 1 != 9 && c - 1 != -1 && realmap[r + 1][c - 1] == 10)
{
num++;
}
if (c - 1 != -1 && realmap[r][c - 1] == 10)
{
num++;
}
if (r - 1 != -1 && c - 1 != -1 && realmap[r - 1][c] == 10)
{
num++;
}
realmap[r][c] = num;
Sleep(5000);
cout << "test3";
}
}
}
如果您发现问题,非常感谢。如果没有人能找到问题,我将包含其余的 if 语句。
【问题讨论】:
-
您是否尝试过使用调试器,例如 MVS?
-
为什么有嵌套循环修改 r 和 c 两次?
-
巴特似乎在正确的轨道上。您将变量“r”和“c”重新初始化为零,这将阻止外部循环完成。
-
那些有不同的范围应该不是问题。
-
你用什么编译?那些for循环语句有重新声明,应该是非法的。
标签: c++