鞍点:即该行最大,该列最小
#include<iostream>
#define N 100
using namespace std;
int main(){
int m,n;
m=n=5;
int i,j,k,flag;
int max,maxj;
int a[N][N];
cin>>m>>n;
for (i=0;i<m;i++) //输入数组
for (j=0;j<n;j++)
cin>>a[i][j];
for(i=0;i<m;i++){
max=a[i][0];maxj=0;
for(j=0;j<n;j++){
if(max<a[i][j]){
max=a[i][j];
maxj=j; //每行最大的数的列数
}
}
flag=1;
for(k=0;k<m;k++){
if(a[k][maxj]<max){
flag=0;
continue;
}
}
if(flag){
cout<<"a["<<i<<"]["<<"["<<maxj<<"]="<<max<<endl;
break; //输出鞍点的值和所在行列号
}
}
return 0;
}