1.找该行上最大的元素
2.找该列上最小的元素
#include <stdio.h>
#define M 3
#define N 4
int main()
{
int i, j ,max, pos, flag = 0;
int array[M][N];
printf("请输入%d行%d列的二位数组:\n",M,N);
for (i = 0; i < M; ++i)
{
for (j = 0; j < N; ++j)
{
scanf_s("%d", &array[i][j]);
}
}
//找鞍点
for (i = 0; i < M; ++i)
{
//找改行上最大的元素,并记录其所在列号
max = array[i][0];
for (j = 1; j < N; ++j)
{
if (array[i][j] > max)
{
max = array[i][j];
pos = j;
}
}
//确认该元素是否为该列上最大的数
for (j = 0; j < M; ++j)
{
if (array[j][pos]<max)
{
break;
}
}
//如果在pos列上没有发现比max小的元素,说明max是pos列上最小的元素
if (j == M)
{
printf("该鞍点为:%d行%d列%d", i,pos, array[i][pos]);
flag = 1;
break;
}
}
if (0 == flag)
{
printf("没有鞍点");
}
return 0;
}