为什么k>=m?,这段没看明白

#include <stdio.h>
int main()
{
int m,n;
printf("Please enter a matrix's row and column: \n");
scanf("%d %d",&m,&n);
int array[m][n];
int i,j;
printf("Please enter a %d rows, %d columns matrix: \n",m,n);
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
scanf("%d",&array[i][j]);

int k,max,max_j;
for(i=0;i<=m-1;i++)
{
    max=array[i][0];
    max_j=0;
    for(j=1;j<=n-1;j++)
    {
        if(max<array[i][j])
        {
            max=array[i][j];
            max_j=j;
        }
    }

    for(k=0;k<=m-1;k++)
    {
        if(max>array[k][max_j])
            break;
    }

    if(k>=m)
        {
            printf("The result is: array[%d][%d]=%d\n",i,j,max);
            break;
        }
    else
        {
            printf("There is no result.\n");
            break;
        }
}
return 0;

}

你定义了m行数组,而c 语言 下标是从0开始的也就是 实际是 0,1,...m-1
当k =m-1的时候就已经是最后一行
因此当k==m的时候就需要跳出
k>= m 包含了 k==m