СРОЧНО Розробка програм з використанням функцій (мова с++)

Дана дійсна квадратна матриця порядку n. В стрічках з додатнім елементом на
головній діагоналі знайти найбільший з елементів. Вхідну матрицю, номери відповідних стрічок та знайдені максимальні значення вивести на дисплей.

Ответы

Ответ дал: vayvy8285
0

Ответ:

Объяснение:

#include <iostream>

#include <vector>

// Функція для введення матриці

void inputMatrix(std::vector<std::vector<double>>& matrix, int n) {

   std::cout << "Введіть елементи матриці розмірності " << n << "x" << n << ":\n";

   for (int i = 0; i < n; ++i) {

       std::vector<double> row;

       for (int j = 0; j < n; ++j) {

           double element;

           std::cout << "Елемент [" << i + 1 << "][" << j + 1 << "]: ";

           std::cin >> element;

           row.push_back(element);

       }

       matrix.push_back(row);

   }

}

// Функція для знаходження стрічок з додатнім елементом на головній діагоналі

std::vector<int> findRowsWithPositiveDiagonalElement(const std::vector<std::vector<double>>& matrix) {

   std::vector<int> result;

   for (int i = 0; i < matrix.size(); ++i) {

       if (matrix[i][i] > 0) {

           result.push_back(i);

       }

   }

   return result;

}

// Функція для знаходження максимального елементу у стрічці

double findMaxInRow(const std::vector<std::vector<double>>& matrix, int row) {

   double maxElement = matrix[row][0];

   for (int j = 1; j < matrix.size(); ++j) {

       if (matrix[row][j] > maxElement) {

           maxElement = matrix[row][j];

       }

   }

   return maxElement;

}

int main() {

   int n;

   std::cout << "Введіть розмірність матриці n: ";

   std::cin >> n;

   std::vector<std::vector<double>> matrix;

   inputMatrix(matrix, n);

   std::vector<int> rowsWithPositiveDiagonalElement = findRowsWithPositiveDiagonalElement(matrix);

   std::cout << "\nСтрічки з додатнім елементом на головній діагоналі: ";

   for (int i : rowsWithPositiveDiagonalElement) {

       std::cout << i + 1 << " ";

   }

   std::cout << "\n";

   std::cout << "\nМаксимальні значення відповідних стрічок:\n";

   for (int i : rowsWithPositiveDiagonalElement) {

       double maxElement = findMaxInRow(matrix, i);

       std::cout << "Стрічка " << i + 1 << ": " << maxElement << "\n";

   }

   return 0;

}

Вас заинтересует