【发布时间】:2013-10-11 04:17:27
【问题描述】:
所以我有一个数组 board[][],它的值不断变化。它是一个维度为 d*d 的方阵。我想检查数组以查看其所有值是否都按升序排列。
for (int i = 0; i < d; i++)
{
for (int j = 0; i < d; i++)
{
if (board[i][j] == (d * i) + j + 1)
{
return true;
}
else
{
return false;
}
}
}
问题是,只要数组 board[0][0] = 1 中的第一个元素,它就会返回 true,并结束我的代码。我不知道如何实现它,直到数组中的所有元素都按升序排列,从 1 到 (d*d - 1) 时它才会返回 true。
谢谢!
【问题讨论】:
-
第二个
for循环中的界限似乎完全错误。 SO 不是一个用于代码审查的网站,即使它是,你也应该对其进行最少的调试。 -
首先,第二个循环应该检查并增加
j,而不是i。然后,只要项目的顺序正确,就不能从循环中中断 (return true),而是继续到板的末尾,并从循环后继续return true。
标签: c arrays sorting multidimensional-array shuffle