求二维数组中的鞍点
题目描述
如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出mn的矩阵A的所有马鞍点。
输入输入m,n然后输入数组中的每个元素输出输出mn的矩阵A的所有马鞍点
样例输入
3 3
1 7 3
5 4 6
17 18 9
样例输出
9
#include<stdio.h>
int main()
{
int m,n;
int c=0,d;
int i,j;
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++)
{
int b=a[i][0];
d=0;
for(j=1;j<n;j++)
if(b>a[i][j])
{
b=a[i][j];
d=j;
}
for(i=0;i<n;i++)
{
if(b==a[i][d])
i++;
if(b<a[i][d])
break;
if(b>a[i][d])
c++;
if(c==2)
printf("%d",b);
}
}
return 0;
}