如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点的坐标(1<=i,j<=n)。
Input:
输入m,n
然后输入数组中的每个元素
Output:
输出m*n的矩阵A的所有马鞍点坐标
Sample Input:
3 3 1 5 3 5 2 6 7 6 9
#include <stdio.h>
void main()
{
int i,j,m,n;
int k=0,max=0,min=0;
scanf("%d%d",&m,&n);
int a[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]<a[i][min])//找出每行的最小的数
min=i;
}
for(k=0;k<m;k++)
{
if(a[k][min]>a[max][min])//在每行的最小值中找出每列的最大值
max=k;
}
if(max==i)
printf("%d %d",max+1,min+1);
}
}
原文:https://www.cnblogs.com/Zhuohome/p/12837700.html