Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Составить блок схему к задаче на с++

Tim Ученик (61), открыт 2 недели назад
Помогите, пожалуйста, составить блок схему для задачи с++.

Если единственный максимум в заданной матрице больше 2.5 и находится на главной диагонали, то все элементы такой матрицы разделить на этот максимум кроме его самого.
2 ответа
ParazID Оракул (70657) 2 недели назад
ChatGPT зачем придумали?
Krab BarkИскусственный Интеллект (294629) 2 недели назад
Двоечникам помогать? :))
ParazID Оракул (70657) Krab Bark, конечно. Двоечник отличником не станет никогда. Пусть хотя бы ИИ обкатывает
Виктор Соловейко Профи (523) 2 недели назад
#include <iostream>
#include <vector>
#include <limits>

using namespace std;

int main() {
int n; // Размер матрицы (предполагаем квадратная матрица)
cout << "Введите размер матрицы: ";
cin >> n;

vector<vector<double>> matrix(n, vector<double>(n));
cout << "Введите элементы матрицы:\n";
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cin >> matrix[i][j];
}
}

// Поиск единственного максимума в матрице
double maxVal = -numeric_limits<double>::infinity();
int maxRow = -1, maxCol = -1;
int maxCount = 0;

for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (matrix[i][j] > maxVal) {
maxVal = matrix[i][j];
maxRow = i;
maxCol = j;
maxCount = 1; // Новый максимум найден, сбрасываем счетчик
} else if (matrix[i][j] == maxVal) {
maxCount++; // Еще один элемент с тем же значением максимума
}
}
}

// Проверка условия: единственный максимум, больше 2.5, на главной диагонали
if (maxCount == 1 && maxVal > 2.5 && maxRow == maxCol) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (!(i == maxRow && j == maxCol)) {
matrix[i][j] /= maxVal;
}
}
}
}

// Вывод измененной матрицы
cout << "Результат:\n";
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << matrix[i][j] << " ";
}
cout << endl;
}

return 0;
}
Похожие вопросы