C++.
Элемент матрицы назовем седловой точкой, если он является наименьшим в строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером 10x15 напечатать индексы всех её седловых точек.
Ответы
Ответ:
#include <iostream>
#include <algorithm>
const int ROWS = 10;
const int COLUMNS = 15;
int main() {
int matrix[ROWS][COLUMNS];
// Initialize the matrix with values
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLUMNS; j++) {
matrix[i][j] = /* some value */;
}
}
// Find the saddle points
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLUMNS; j++) {
// Check if the current element is the smallest in its row and largest in its column
bool is_min_in_row = matrix[i][j] == *std::min_element(matrix[i], matrix[i] + COLUMNS);
bool is_max_in_col = true;
for (int k = 0; k < ROWS; k++) {
if (matrix[k][j] > matrix[i][j]) {
is_max_in_col = false;
break;
}
}
if (is_min_in_row && is_max_in_col) {
std::cout << "Found saddle point at (" << i << ", " << j << ")" << std::endl;
}
// Check if the current element is the largest in its row and smallest in its column
bool is_max_in_row = matrix[i][j] == *std::max_element(matrix[i], matrix[i] + COLUMNS);
bool is_min_in_col = true;
for (int k = 0; k < ROWS; k++) {
if (matrix[k][j] < matrix[i][j]) {
is_min_in_col = false;
break;
}
}
if (is_max_in_row && is_min_in_col) {
std::cout << "Found saddle point at (" << i << ", " << j << ")" << std::endl;
}
}
}
return 0;
}