
Обчислити вектор добуктів ненульових елементів стовпців матриці на с++


Ответы на вопрос

#include <iostream>
using namespace std;
void execute_dobutok(int arr[3][6], int arr1[6], const int n, const int m) {
int dobutok = 1;
for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) {
if (arr[i][j] != 0) {
dobutok *= arr[i][j];
arr1[j] = dobutok;
}
}
}
cout << "Result ";
for (int i = 0; i < m; i++) {
cout << arr1[i] << "\t";
}
}
int main() {
const int n = 3, m = 6;
int arr[n][m], arr1[m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++)
cout << arr[i][j] << "\t";
cout << endl;
}
execute_dobutok(arr, arr1, n, m);
return 0;
}



Ответ:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<vector<int>> matrix(n, vector<int>(m));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> matrix[i][j];
vector<int> result(m);
for (int j = 0; j < m; j++)
for (int i = 0; i < n; i++)
if (matrix[i][j] != 0)
result[j]++;
for (int i = 0; i < m; i++)
cout << result[i] << " ";
return 0;
}
Объяснение:



Чтобы вычислить вектор добутков ненулевых элементов столбцов матрицы, сначала необходимо найти все ненулевые элементы в каждом столбце матрицы, а затем перемножить их.
Пусть дана матрица A размером m x n, где m - количество строк, n - количество столбцов.
1. Найдем все ненулевые элементы в каждом столбце матрицы A. - Проходимся по каждому столбцу матрицы A с помощью внешнего цикла для переменной j от 1 до n. - Внутри внешнего цикла проходимся по каждому элементу столбца с помощью внутреннего цикла для переменной i от 1 до m. - Если элемент A[i][j] не равен нулю, добавляем его в список ненулевых элементов столбца.
2. Перемножим все ненулевые элементы каждого столбца. - Создаем вектор добутков размером n, инициализируем его единицами. - Проходимся по каждому столбцу матрицы A с помощью внешнего цикла для переменной j от 1 до n. - Внутри внешнего цикла проходимся по каждому ненулевому элементу столбца с помощью внутреннего цикла для переменной k от 1 до длины списка ненулевых элементов столбца. - Умножаем текущий элемент вектора добутков на текущий ненулевой элемент столбца: vector_dobutkiv[j] *= nenulezni_elementi_stovptsya[k].
3. Получаем вектор добутков ненулевых элементов столбцов матрицы A.
Пример:
Пусть дана матрица A размером 3 x 4: A = [[0, 2, 0, 4], [0, 0, 1, 0], [3, 0, 0, 5]]
1. Найдем все ненулевые элементы в каждом столбце матрицы A: - Для столбца 1: [3] - Для столбца 2: [2] - Для столбца 3: [1] - Для столбца 4: [4, 5]
2. Перемножим все ненулевые элементы каждого столбца: - Для столбца 1: 3 - Для столбца 2: 2 - Для столбца 3: 1 - Для столбца 4: 20 (4 * 5)
3. Вектор добутков ненулевых элементов столбцов матрицы A: [3, 2, 1, 20]


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili