描述
输入一个二维 (5*5)数组,每行只有一个最大值,每列只有一个最小值。
如果存在鞍点,则输出鞍点所在的位置(行和列),不存在鞍点时,要输出“not found”。
鞍点指的是数组中的一个元素,它是所在行的最大值,并且是所在列的最小值。
关于输入
输入包含一个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>
#include<cstring>
using namespace std;
int main()
{
int a[6][6] = { 0 };
int max[6];//在一行中最大的列的下标
for (int i = 1; i < 6; i++) {
max[i] = 1;
}
int min[6];//在一列中最小的行的下标
for (int i = 1; i < 6; i++) {
min[i] = 1;
}
for (int i=1;i<6;i++)
for (int j = 1; j < 6; j++) {
cin >> a[i][j];
}
//row为行,colomn为列
for (int row=1;row<6;row++)
for (int colomn = 1; colomn < 6; colomn++) {
if (a[row][colomn] > a[row][max[row]])
max[row] = colomn;
if (a[row][colomn] < a[min[colomn]][colomn])
min[colomn] = row;
}
bool istherea=false;
for (int row = 1; row < 6; row++) {
int colomn = max[row];
if (min[colomn] == row) {
istherea = true;
cout << row << " " << colomn << " " << a[row][colomn] << endl;
}
}
if (!istherea)
cout << "not found" << endl;
return 0;
}