c语言鞍点的求法,只有一列的特殊情况

#include<stdio.h>
int main(void)
{
/Begin/
int m,n;
int i,j,k,flag,pos,max;
scanf("%d %d",&m,&n);
int a[m][n];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++){
max=a[i][0];
pos=0;
for(j=0;j<n;j++){
if(a[i][j]>max){
max=a[i][j];
pos=j;
}
}flag=1;
for(k=0;k<n;k++){
if(a[k][pos]<max){
flag=0;
}
if(flag==1){
printf("Array[%d][%d]=%d",k,pos,max);
}break;
if(flag==0){
printf("None");
}
}

}

/*********End**********/
return 0;

}

img


img

#include <stdio.h>

int main(void)
{
    int m, n;
    int i, j, k, min = 0, found = 0;
    scanf("%d%d", &m, &n);
    int a[m][n];
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            scanf("%d", &a[i][j]);
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
            if (a[i][j] > a[i][min])
                min = j;
        for (k = 0; k < m; k++)
            if (a[i][min] > a[k][min])
                break;
        if (k == m) {
            printf("Array[%d][%d]=%d", i, min, a[i][min]);
            found = 1;
            break;
        }
    }
    if (!found)
        printf("None");
    return 0;
}