测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题