题目描述
如果矩阵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<stdio.h>
int main()
{
int m,n,h,u,mm,nn,min,max,j=0,q[100][100];
scanf("%d %d",&m,&n);
for (h=0;h<m;h++)
for (u=0;u<n;u++)
{
scanf("%d",&q[h][u]);
}
for (h=0;h<m;h++)
for (u=0;u<n;u++)
{
min=q[h][u];
for (nn=0;nn<n;nn++)
if(q[h][nn]<min)
min=q[h][nn];
max=q[h][u];
for (mm=0;mm<m;mm++)
if(q[mm][u]>max)
max=q[mm][u];
if(max==min&&max==q[h][u]&&j>0)
{
printf(" ");
printf("%d",q[h][u]);
}
if(max==min&&max==q[h][u]&&j==0)
{
printf("%d",q[h][u]);
j++;
}
}
}
解析
暂无