以下是找矩阵中鞍点的问题,找不到哪出了问题?

#include
using namespace std;
int main()
{
    int a[4][4] = { {9,6,14,11},{15,5,13,8},{12,7,16,10},{2,4,3,1}};
    int m, n, max = 0, min = 100;
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            if (a[i][j] > max)
            {
                max = a[i][j];
                m = i;
                n = j;
            }
        }
        for (int k = 0; k < 4; k++)
        {
            if (a[k][n] < min)
            {
                min = a[k][n];
            }
        }
        if (a[m][n] == min)
            cout << a[m][n] << "是鞍点" << endl;
    }
    return 0;
}

min和max的初始值在一次循环后已被改变

#include<iostream>
using namespace std;
int main()
{
    int a[4][4] = { {9,6,14,11},{15,5,13,8},{12,7,16,10},{2,4,3,1}};
    int m,n, max,min;
    for (int i = 0; i < 4; i++)
    {
        max=a[i][0];
        m=i;
        n=0;
        for (int j = 0; j < 4; j++)
        {
            if (a[i][j] > max)
            {
                max = a[i][j];
                m = i;
                n = j;
            }
        }
        min=a[m][n];
        for (int k = 0; k < 4; k++)
        {
            if (a[k][n] < min)
            {
                min = a[k][n];
            }
        }
        if (a[m][n] == min)
            cout << a[m][n] << "是鞍点" << endl;
    }
    return 0;
}