我试图代码幻方的问题。我有一个6 * 6的正方形,我知道每行或每列的总和。它是sum = 6 *((36 + 1)/ 2)。在某些地方发生-1。我们必须找出应该是什么,以便魔术方块正确。 我只需要知道如何检查是否为-1并将其替换为正确的数字即可。
这是包含错误的最少代码:
//to check if there is -1
int array[6][6];
sum = 6 * ((36 + 1) / 2)
int i,j;
for (i=0; i<=6; i++)
for (j=0; j<=6; j++)
if(square[i][j] = -1)
{
square[i][j] = sum - (sum of the row or column where -1 was found)
}
答案 0 :(得分:1)
您的代码逻辑是正确的,我认为您应该遇到的唯一问题是,在两个循环中(对于“ i”和“ j”)都将运行到i = 6和j = 6,因为您可能已经研究了数组的索引(即使在二维数组中)也从0开始,以索引n-1结束(n将是数组的长度)
假设我将数组设为a [3] a [3],那么索引将像这样
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]