C语言寻找矩阵鞍点问题麻烦看看我的算法哪里有问题

我写了个算法,但是不知道为什么运行不出结果。
麻烦看看我的算法错在了哪里(请不要更换我的算法)。
图片说明
图片说明
图片说明

/*寻找行里面最大的值所在列,找到后再看该元素是不是所在列的最小值,如果是则找到,否则下一行接着找,弱到最后一行都没有则没有鞍点*/
for(i = 0; i < n; i++)
{
max = a[i][0]; //记录行里面的最大值
column = 0; //记录行最大值所在列号
//找行最大值的列号
for(j = 1; j < m; j++)
{
if(a[i][j] > max)
{
max = a[i][j];
column = j;
}
}
//找到行里面最大值所在列为column,行为i,看该元素是否为列最小
row_max = a[i][column];
for(row = 0; row < n; row++)
{
if(a[row][column] < row_max)break;
}
if(row >= n)
{
printf("鞍点找到,行为i,列为column,值为a[i][column]");
break;
}
}
if(i >= n)printf("该矩阵没有鞍点");

 for(l=0;l<n;l++)
if(a[i][l]<a[i][k])
break;
改为:
for(l=0;l<n;l++)
if(a[l][k]<a[i][k])
break;