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