#include <stdio.h>
#define N 3//此为一个宏定义,是比较方便的写法,也更简单
int main()
{
int i,j,min,max,a[N][N],k;//max是纵向的最大值,min是横向的最小值
int col=0,row=0;//两个变量接收鞍点的横纵坐标
for(i=0;i<N;i++)//此处为输入一个数组
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<N;i++)
{
max=a[i][0];//每一行第一个数
for(j=0;j<N;j++)
{
if(a[i][j]>max)//寻找每行最大值
{
max=a[i][j];
col=j;
}
}
min=a[0][col];//理解此处是一个重点col是上一行特定找到的最大值的地方,若找到了row则此处是鞍点
for(k=0;k<N;k++)
{ if(a[k][col]<min)//找到每列的最小值
{
min=a[k][col];
row=k;
}
}
if(min==max)
{
printf("您好,您需要的鞍点位置为%d%d您要找的数是%d",row+1,col+1,min);
break;
}
}
if(min!=max)
printf("not found");
return 0;
}
找鞍点
最新推荐文章于 2022-09-22 22:27:41 发布