鞍点:鞍点(i,j)是第i行中最大的点同时又是第j列的最小的点
寻找鞍点的核心代码如下:
for(i=0;i<n;i++)
{
s1=a[i][0];
for(k=0;k<n;k++)
if(s1<a[i][k])
{ s1=a[i][k];
t=k;
}
s2=a[0][t];
for(j=0;j<n;j++)
if(s2>a[j][t])
s2=a[j][t];
if(s1==s2)
{
printf("(%d,%d)",i,j);
flag=1;
break;
}
完整代码如下:
#include<stdio.h>
int main(void){
int i,j,k,t,n;
int flag=0,s1=0,s2=-1;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
s1=a[i][0];
for(k=0;k<n;k++)
if(s1<a[i][k])
{ s1=a[i][k];
t=k;
}
s2=a[0][t];
for(j=0;j<n;j++)
if(s2>a[j][t])
s2=a[j][t];
if(s1==s2)
{
printf("(%d,%d)",i,j);
flag=1;
break;
}
}
if(!flag) printf("None");
}