如果矩阵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