A40716. 计算鞍点给定一个 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*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;
}
上一题
下一题