能帮我看一下为什么有鞍点的数组(一行中最大,同列中最小)我输出还是没有鞍点?)

#include <stdio.h>

int main()
{int a[4][4]={{9,80,205,40},{90,-6096,1},{210,-3,101,89},{45,54,99,7}};
int i,j,n,flag,max,max1;
for(i=0;i<4;i++)
{max=a[i][0];max1=0;
for(j=0;j<4;j++)
if(a[i][j]>a[i][0])
{
max=a[i][j];
max1=j;
}
flag=1;
for(n=0;n<4;n++)
if(max>a[n][max1])
{flag=0;continue;}

if(flag)
{printf("a[%d][%d]=%d\n",n,max1,max);break;}
}
if(!flag)
printf("鞍点不存在\n");

return 0;
}
(初学者别骂)

你的第二个数组,只有三个数啊,而且就算拆开,也的确不存在鞍点,你先自己检查你的想要的数是否存在