Обчислити вектор добуктів ненульових елементів стовпців матриці на с++
Ответы
#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;
}
Объяснение: