我正在尝试编写幻方问题的代码。我有一个 6 * 6 的正方形,我知道每行或每列的总和应该是多少。总和 = 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)
}
最佳答案
你的代码的逻辑是正确的,我认为你应该遇到的唯一问题是在两个循环中(对于'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]
关于c - 如何找到具有特定值的行或列的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54471658/