题目描述
如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点。
输入
输入m,n
然后输入数组中的每个元素
输出
输出m*n的矩阵A的所有马鞍点
样例输入
3 3
1 7 3
5 4 6
17 18 9
样例输出
9
答案
#include "iostream"
using namespace std;
int main()
{
int m,n,i,j,a[10][10];
int hmin[10],lmax[10];
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++){
hmin[i] = a[i][0];
for(j=0;j<n;j++){
if(a[i][j] < hmin[i]) hmin[i] = a[i][j];
}
}
for(j=0;j<n;j++){
lmax[j] = a[0][j];
for(i=0;i<m;i++){
if(a[i][j] > lmax[j]) lmax[j] = a[i][j];
}
}
for(i=0;i<m;i++){
if(hmin[i] == lmax[i])
cout<<hmin[i];
}
return 0;
}