题目描述:求一个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
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 hasSaddle = false;
for (int i = 0; i < n; i++) {
int minRow = matrix[i][0];
int colIndex = 0;
for (int j = 1; j < m; j++) {
if (matrix[i][j] < minRow) {
minRow = matrix[i][j];
colIndex = j;
}
}
bool isSaddle = true;
for (int k = 0; k < n; k++) {
if (matrix[k][colIndex] > minRow) {
isSaddle = false;
break;
}
}
if (isSaddle) {
hasSaddle = true;
cout << "Row: " << i + 1 << " Column: " << colIndex + 1 << " Value: " << minRow << endl;
}
}
if (!hasSaddle) {
cout << "not exist" << endl;
}
return 0;
原文地址: https://www.cveoy.top/t/topic/inpy 著作权归作者所有。请勿转载和采集!