![](https://img-blog.csdnimg.cn/img_convert/a5d549c8c48e69cb37ff8ea8becdeebb.png)
容易错的几个问题:
我自己在vs2022上对数组的输入scanf不加&就不成,所以一定要加&;
可能存在多个鞍点的情况,所以说打印鞍点位置的printf放在循环里面,然后none只能出现一次
对于测试点2,它意思应该是行的最大值有并列的情况,要取最后面的,所以a[i][max] <= a[i][j]要加=;
#include<stdio.h>
#define MAXN 20
int main()
{
int n;
int i, j;
int a[MAXN][MAXN]; int cnt = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d",& a[i][j]);
}
}
for (i = 0; i < n; i++)
{
int max = 0;
for (j = 0; j < n; j++)
{
if (a[i][max] <= a[i][j])
{
max = j;
}
}
int b = 0;
int flash = 1;
while (b < n)
{
if (a[b][max] < a[i][max])
{
flash = 0; break;
}
b++;
}
if (flash == 1)
{
printf("%d %d\n", i, max);
}
else if (flash == 0)
{
cnt++;
}
}
if (cnt == n )
{
printf("NONE");
}
return 0;
}