C# 沿对角线对角扫描矩阵,寻找四个相邻数字的最大乘积,并将其表示为';s起始位置
好的,我有一个20x20的网格,我想对角扫描四个相邻数字的最大乘积。现在它不断地给我错误指数在边界之外,而如果我的循环条件是正确的,它就不应该超过边界;当行增加4时,列被逐个检查,这样我将一次沿着对角线精确地得到4个值。它通知我,对角线扫描的公式中有错误,但我不明白为什么。请记住,我不是在扫描主对角线(左或右),我是在尝试沿对角线扫描整个网格,我完全是编程新手。因此,如果有人能指出错误并加以解释,我将不胜感激C# 沿对角线对角扫描矩阵,寻找四个相邻数字的最大乘积,并将其表示为';s起始位置,c#,arrays,matrix,multiplication,C#,Arrays,Matrix,Multiplication,好的,我有一个20x20的网格,我想对角扫描四个相邻数字的最大乘积。现在它不断地给我错误指数在边界之外,而如果我的循环条件是正确的,它就不应该超过边界;当行增加4时,列被逐个检查,这样我将一次沿着对角线精确地得到4个值。它通知我,对角线扫描的公式中有错误,但我不明白为什么。请记住,我不是在扫描主对角线(左或右),我是在尝试沿对角线扫描整个网格,我完全是编程新手。因此,如果有人能指出错误并加以解释,我将不胜感激 for (int c = 0; c <= 16; c +=4)
for (int c = 0; c <= 16; c +=4)
{
for (int z = 0; c <= 16; z ++)
{
int productdiagonally = (matrix [c, z] * matrix [c+ 1 , z + 1] * matrix [c + 2, z + 2] * matrix [c + 3, z + 3]);
if (productdiagonally > largestproductdiagonally)
{
largestproductdiagonally = productdiagonally;
rowmaxdiagonally = c;
colmaxdiagonally = z;
}
}
}
for(int c=0;c在内部循环的退出条件中使用了c而不是z
你需要:
for (int z = 0; z <= 16; z ++)
for(int z=0;z哇哦,这很简单,如果它直接与这个问题和答案相关,我不敢相信我错过了。否则,最好将它作为新问题发布,以确保它被更广泛的观众看到!好的,我将发布一个新问题,希望你也能提供帮助:D