• Предмет: Информатика
  • Автор: NXNBL4DE
  • Вопрос задан 4 месяца назад

C++.
Элемент матрицы назовем седловой точкой, если он является наименьшим в строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером 10x15 напечатать индексы всех её седловых точек.

Ответы

Ответ дал: Wh1ter
0

Ответ:

#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;

}


NXNBL4DE: matrix[i][j] = /* some value */; выдает ошибку
Вас заинтересует