【发布时间】:2020-01-04 17:13:41
【问题描述】:
我需要找到二维数组中特定行的最大值。
static void BiggestValueOfKRow(Matrix matrica, int j, out int maxI)
{
int max = matrica.TakeValue(0,j);
maxI = 0;
for (int i = 0; i < matrica.n; i++)
{
if (matrica.TakeValue(i, j) > max)
{
max = matrica.TakeValue(i, j);
maxI = i;
}
}
}
我之前尝试过其他选项,但我仍然无法获得它。 我应该能够选择行数,然后 int 那行我必须找到最大的值
【问题讨论】:
-
我建议您使用比
j和i更具描述性的标识符。例如,方法名为BiggestValueOfKRow- 所以j应该重命名为k或kthRowIndex才能清楚。 -
matrica.n指的是什么?是矩阵的宽度还是矩阵的总细胞数?或者是其他东西? (这就是描述性名称很重要的原因)。 -
矩阵是列优先还是行优先?
-
TakeValue的定义是什么?为什么要使用自定义矩阵类而不是原生 2D 数组或锯齿状数组? -
该方法名为
BiggestValue...,但其输出参数返回一个索引——在这种情况下,该方法应重命名为GetIndexOfMaxValueOfKthRow。当索引i和值max共享相同类型 (Int32) 时,命名很重要。