鞍点:即该位置上的元素在该行最大、该列最小、也可能无鞍点
#include <stdio.h>
#define M 6
#define N 6
//MN用于定义数组
int main()
{
int m, n;
printf("输入行数和列数:");
scanf("%d %d", &m, &n);
int i, j, max, maxj, k, flag = 0;
int a[M][N] = { 0 };
printf("请输入数组:");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
}
printf("
");
for (i = 0; i < m; i++)
{
max = a[i][0];
maxj = 0;
for (j = 0; j < n; j++)
{
if (a[i][j]>max)
{
max = a[i][j];
maxj = j;
}
}
flag = 1;
for (k = 0; k < m; k++)
{
if (max>a[k][maxj])
flag = 0;
continue;
}
if (flag)
{
printf("存在鞍点a[%d][%d]=%d", i, maxj, max);
break;
}
}
if (!flag)
printf("没有鞍点");
printf("
");
system("pause");
return 0;
}