1122:计算鞍点

本小妞迷上赌 提交于 2019-12-13 19:01:26

 

【题目描述】

给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。

   例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

【输入】

输入包含一个5行5列的矩阵。

【输出】

如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"。

【输入样例】

11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8  6 4 7 2
15 10 11 20 25

【输出样例】

4 1 8
#include <iostream>
using namespace std;
int main()
{

	int a[5][5],flag,judge=1,max[5];
	int i,j;
	for(i=0;i<5;i++)
	{
		for(j=0;j<5;j++)
		{
			cin>>a[i][j];
		}
	}
	//若a[5]=0则负数无法排除
	for(i=0;i<5;i++)
	{
		max[i]=a[i][0];
		flag=0;	//考虑a[i][0]最大
		for(j=0;j<5;j++)
		{
			if(a[i][j]>max[i])
			{
				max[i]=a[i][j];
				flag=j;
			}
		}
			judge=1;
			for(j=0;j<5;j++)
			{
				if(a[j][flag]<max[i])
				{
					judge=0;
				}
			}
			if(judge)
			{
				cout<<i+1<<" "<<flag+1<<" "<<max[i]<<endl;
				return 0;
			}
		
	}
	cout<<"not found"<<endl;
	return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!