C#中鞍点的算法问题

我需要一点帮助。我需要编译一种算法,该算法可以找到给定二维数组上的鞍点数。二维阵列的鞍点就是这样一个元素,它既对于梯形图来说是最小的,对于其所在的行来说也是最大的,反之亦然。此外,为了使该点成为鞍形,在相应的行或列中必须没有其他具有相同末端的元素。

我有以下代码:

class Program
{
    static void Main()
    {
        Console.Write("Rows: ");
        int rows = int.Parse(Console.ReadLine());
        Console.Write("Cols: ");
        int cols = int.Parse(Console.ReadLine());

        int[,] matrix = ReadMatrixNumbers(rows, cols);
        int count = 0;
        for (int row = 0; row < rows; row++)
        {
            // max row - min col
            int k = 0;
            for (int col = 0; col < cols; col++)
            {
                if (matrix[row, col] > matrix[row, k])
                {
                    k = col;
                }
            }

            bool fail = false;
            for (int r = 0; r < rows; r++)
            {
                if (matrix[r, k] < matrix[row, k])
                {
                    fail = true;
                    break;
                }
            }

            if (!fail)
            {
                count++;
            }

            // min row - max col
            k = 0;
            for (int col = 0; col < cols; col++)
            {
                if (matrix[row, col] < matrix[row, k])
                {
                    k = col;
                }
            }

            fail = false;
            for (int r = 0; r < rows; r++)
            {
                if (matrix[r, k] > matrix[row, k])
                {
                    fail = true;
                    break;
                }
            }

            if (!fail)
            {
                count++;
            }
        }

        Console.WriteLine(count);
    }

    static int[,] ReadMatrixNumbers(int rows, int cols)
    {
        int[,] matrix = new int[rows, cols];
        for (int row = 0; row < rows; row++)
        {
            for (int col = 0; col < cols; col++)
            {
                int number = int.Parse(Console.ReadLine());
                matrix[row, col] = number;
            }
        }

        return matrix;
    }
}

它仅编译前两个WriteLine。然后是编译错误。错误在哪里? 我想我忘了输入一些可以帮助我找到鞍点的东西了,谢谢!