请问这题求二维数组鞍点(该行最大,该列最小)的程序哪里错了
#include<stdio.h>#define N 4
#define M 4
void main()
{ int i,j,k,flag1,flag2,a[N][M],max,maxj;
for(i=0;i<N;i++)
for(j=0;j<M;j++) scanf("%d",&a[i][j]);
flag2=0;
for(i=0;i<N;i++)
{ max=a[i][0]; maxj=0; //开始i=0,a[0][j]取的是该行最大
for(j=0;j<M;j++)
if(a[i][j]>max)
{
max=a[i][j];
maxj=j; //确定该行最大值对应的列
for(k=0,flag1=1;k<N&&flag1;k++)
if(max>a[k][maxj]) flag1=0;
} //取该列上的最小值
if(flag1)
{
printf("\nThe saddle point is:a[k][maxj]=%d\n,max");
flag2=1;
}
}
if(flag2)
printf("\nThere is no saddle point in the Matrix\n");
}