//求鞍点
//鞍点:行最大,列最小 //方法二见下一篇
#include<stdio.h>
int main()
{
int a[3][4];
int i,j,h,l;
int min,max;
int count,c=0;
printf("请输入三行四列的数组\n");
for(i=0;i<3;i++) //输入数组
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{ count=l=h=0; //置零
max=min=a[i][0];
for(j=0;j<4;j++)
{
if(a[i][j]>max) //得到这一列的行最大 即疑似目标(鞍点)
max=min=a[i][j];
l=j; //记录下疑似目标的行号和列号
h=i;
}
for(i=0;i<3;i++)
{
if(a[i][l]>=min) //进行比较 是否是该列的最小值
count++; //记录比较成功(即大于等于min)的次数
}
if(count==3) //判定比较成功的次数,由于是三行,故需要比较成功三次
{printf("鞍点为%d,位于%d行%d列\n",max,h,l);
c++; //记录鞍点的个数
}
}
printf("有%d个鞍点\n",c);
}