完犊子了 是求数组鞍点的 我自己先写了一个程序 感觉逻辑是对的但是运行是错的 想求大家看一看 哪里出问题了

#include <stdio.h>
int main()
{
int x[4][4],i,j,max,t,y,min;
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
scanf("%d",&x[i][j]);
}
for(t=1;t<=4;t++)//进行4次总循环
{
for(i=t;i<=t;i++)//一行一行的算
{
for(j=1;j<=4;j++)
{
if(x[i][j]>x[i][j+1])
{
max=x[i][j];y=j;//求出每一行的最大值 然后在将其所在的列记录下来
}
}
}
for(i=1;i<=4;i++)
{
if(x[i][y]<x[i][y])//用记录下来的y 去求那一列的最小值
{
min=x[i][y];
}
}
if(max=min)//当最小值等于最大值时得到结果
{
printf("%d",max);
}
}
return 0;
}

if(x[i][j]>x[i][j+1])
会越界

#include <stdio.h>
int main()
{
    int x[4][4], i, j, max, t, y, min;
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
            scanf("%d", &x[i][j]);
    }
    for (i = 0; i < 4; i++) 
    {
        max = x[i][0];
        for (j = 0; j < 4; j++) //一行一行的算
        {
            if (x[i][j] > max)
                {
                    max = x[i][j];
                    y = j; //求出每一行的最大值 然后在将其所在的列记录下来
                }
        }
        min = x[0][y];
        for (t = 0; t < 4; t++)
        {
            if (x[t][y] < min) //用记录下来的y 去求那一列的最小值
            {
                min = x[t][y];
            }
        }
        if (max == min) //当最小值等于最大值时得到结果
        {
            printf("%d ", max);
        }
    }
    return 0;
}


#include <stdio.h>
int main()
{
    int x[4][4], i, j, max, t, y, min;
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
            scanf("%d", &x[i][j]);
    }
    for (t = 0; t < 4; t++)//进行4次总循环
    {
        for (i = t; i <= t; i++)//一行一行的算
        {
            for (j = 0; j < 4; j++)
            {
                if (x[i][j] > x[i][j + 1])
                {
                    max = x[i][j]; y = j;//求出每一行的最大值 然后在将其所在的列记录下来
                }
            }
        }
        for (i = 0; i < 4; i++)
        {
            if (x[i][y] < x[i][y])//用记录下来的y 去求那一列的最小值
            {
                min = x[i][y];
            }
        }
        if (max = min)//当最小值等于最大值时得到结果
        {
            printf("%d", max);
        }
    }
    return 0;
}