Задание: По заданной матрице составить вектор, элементы которого равны произведениям элементов соответствующего столбца.

Решение на С++:

//#include "stdafx.h"

#include

#include

#include

#include

#include

#include


using namespace std;


int main()

{

srand(time(0));

setlocale(LC_ALL, "Russian");


int i, j, n,m, sum = 0;



cout « "Ввод количества строк x= ";

cin » n;

cout « "Ввод количества столбцов y= ";

cin » m;


int **matrix = new int*[n];

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

matrix[i] = new int[m];


int [id888077|*vector] = new int[m];

for (int i = 0; i < m; i++)

vector[i] = 1;


for (int i = 0; i
for (int j = 0; j

matrix[i][j] = rand()%10;


for (int i = 0; i < m; i++)

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

vector[j] *= matrix[i][j];

for (int i = 0; i < m; i++)

{

cout « "|" « vector[i];

cout « endl;

}

return 0;

}

Почему то не работает, но понять не могу что не так


ilya1806: for (int i = 0; i
for (int j = 0; j
ilya1806: скобки забыл
maxpavlutenkof: помимо вышесказанного , нет директив iostream , cstdlib , vector и ctime , плюс , я не заметил инициализации вектора , и для меня остается загадкой int [id888077|*vector]

Ответы

Ответ дал: dajex
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> ans;

   for (int i = 0; i < m; i++)

   {

       int pr = 1;

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

       {

           pr *= matrix[j][i];

       }

       ans.push_back(pr);

   }

   for (auto x : ans)

   {

       cout << x << " ";

   }

return 0;

}

Значения элементов матрицы вводятся с клавиатуры. В векторе ans лежит ответ.

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