实际上是求鞍点
#include<stdio.h>
void main()
{
int a[3][3];
int i, j, k,num=0;
int flag, flag1;;
printf("请输入一个三行三列的二维数组:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("二维数组为;\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
flag = 0;
flag1 = 0;
for (k = 0; k < 3; k++)
{
if (a[i][j] < a[i][k])//当前行是否最大
flag = 1;
}
for (k = 0; k < 3; k++)
{
if (a[i][j] > a[k][j])//当前列是否最小
flag1 = 1;
}
if (!flag && !flag1)//当前行当前列是否都是最大
{
printf("行:%d 列:%d = %d\n", i + 1, j + 1, a[i][j]);
num = 1;
}
}
}
if (num == 0)
printf("不存在鞍点\n");
}
num为一个标志,如果改变,就有鞍点,反之没有。