谁可以照亮我关于每行获得最大值?

时间:2014-11-20 22:00:43

标签: c# arrays row max

这是我的代码:

我正在尝试获得每行的最大值,一切都正常,直到最后一行。它显示我8,但应该是4。

        int[,] vek = new int[,] { { 2, 5 }, { 4, 5 }, { 8, 5 }, { 4, 2 } };
        int sumL=0;
        double media = 0;
        int maxL = 0;
        maxL = vek [0,0];

        Console.WriteLine("\tL1\tL2\tTotal\tMedia");
        Console.WriteLine();

        for (int row = 0; row < vek.GetLength(0); row++)
        {
            Console.Write("{0}.\t", row + 1);

            for (int col = 0; col < vek.GetLength(1); col++) {
                Console.Write(vek[row, col] + "\t");
                sumL += vek[row, col];// SUMA
                media = (double)sumL / vek.GetLength(1); //Media

                if (maxL < vek[row,col])
                {
                    maxL = vek[row, col];
                }
            }

            Console.WriteLine(sumL + "\t" + media + "\t" + maxL);
            Console.WriteLine();
        }

        Console.ReadKey();
    }

1 个答案:

答案 0 :(得分:2)

您需要在每行的开头将maxL设置回0(或者更好,int.MinValue)。简单地将其声明移动到外部for循环中将是一种很好的方法。

您的代码最多可获得5,5,8,8,因为在不重置maxL的情况下,它会占用目前为止的最大行数而不是每行的最大值。