二维数组的"鞍点"定义为:某个数是所在行的最大值,并且是所在列的最小值。
#include <stdio.h>
int main()
{
int m,n,i,j,k,max,min,count=0,num[10][10];
int b[10],s;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&num[i][j]);
for(i=0;i<n;i++)
{
max=num[i][0];
for(j=0;j<m;j++)
if(num[i][j]>max)
{
max=num[i][j];
}
s=0;
for(j=0;j<m;j++)
if(num[i][j]==max)
{
b[s]=j;
s++;
}
min=max;
for(j=0;j<s;j++)
{
for(k=0;k<n;k++)
if(min>num[k][b[j]])
break;
if(k==n)
{
printf("%d %d %d\n",num[i][b[j]],i+1,b[j]+1);
count++;
}
}
}
if(count==0)
printf("No answer\n");
return 0;
}