СРОЧНО Розробка програм з використанням функцій (мова с++)
Дана дійсна квадратна матриця порядку n. В стрічках з додатнім елементом на
головній діагоналі знайти найбільший з елементів. Вхідну матрицю, номери відповідних стрічок та знайдені максимальні значення вивести на дисплей.
Answers & Comments
Ответ:
Объяснение:
#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;
}