首页 > 编程语言 > 详细

求二维数组中的鞍点

时间:2020-05-06 21:36:21      阅读:65      评论:0      收藏:0      [点我收藏+]
Description:

 如果矩阵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
Sample Output: 3 2
代码:
#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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!