找一个二维数组中的鞍点,即该位置上的元素是该行中最大,在该列上最小,也可能没有鞍点
#include<stdio.h>
#define M 4
#define N 5
int main()
{
int a[M][N]={{1,2,3,4,11},{2,4,6,8,12},{3,6,9,12,15},{4,8,12,16,7}};
int i,j;
int flag=0;
int row;
int col;
int andian;
for(i=0;i<M;i++)
{
int max=0,min;
for(j=0;j<N;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
row=i;
col=j;
}
}
min=a[row][col];
for(i=0;i<M;i++)
if(a[i][col]>min)
{
flag=1;
andian=min;
}
else
flag=0;
}
if(flag==1)
printf("a[%d][%d]=%d\n",row,col,andian);
else
printf("没有鞍点\n");
}