题目描述:求一个n行m列数阵中的马鞍数输出它的位置。所谓马鞍数是指在行上唯一的最小而在列上唯一的最大的数。如下:n=5 m=55 6 7 8 94 5 6 7 83 4 5 2 12 3 4 9 01 2 5 4 8则1行1列上的数就是马鞍数。输入:共n+1行第一行:nmnm10第2到n+1行:每行m个整数每个数都10输出:输出若干行:如果存在马鞍数则输出所有马鞍数每行一个为行和列以及马鞍数。如果
#include<iostream>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
int matrix[n][m];
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
cin >> matrix[i][j];
}
}
bool flag = false;
for(int i=0; i<n; i++){
int min_row = matrix[i][0];
int col_index = 0;
for(int j=1; j<m; j++){
if(matrix[i][j] < min_row){
min_row = matrix[i][j];
col_index = j;
}
}
int max_col = matrix[0][col_index];
for(int k=1; k<n; k++){
if(matrix[k][col_index] > max_col){
max_col = matrix[k][col_index];
}
}
if(min_row == max_col){
cout << "Row: " << i+1 << ", Column: " << col_index+1 << ", Value: " << min_row << endl;
flag = true;
}
}
if(!flag){
cout << "not exit" << endl;
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/inpW 著作权归作者所有。请勿转载和采集!