Матрица — Векторное умножение c

#c

Вопрос:

Я пытаюсь создать функцию умножения матрицы на вектор. Это мой код:

 void MatrixRotation2(int Vector[3], int Matrix[3][3]) {  for (int Rows = 0; Rows lt;= 2; Rows  )  {  int total = 0;  for (int Columns = 0; Columns lt;= 2; Columns  )  {  total  = (Matrix[Rows][Columns]*Vector[Columns]);   }  Vector [Rows] = total;  }  return; }  

Код возвращает вектор, но умножение матрицы неверно.

 int Matrix [3][3] = {{1,0,0},{0,0,1},{0,-1,0}};  int Vector [3]= {3,7,5};  MatrixRotation2(Vector, Matrix);   cout lt;lt; Vector [0] lt;lt; endl lt;lt; Vector[1] lt;lt; endl lt;lt; Vector[2];  

Выход должен быть : 3,5,-7 Результат : 3, 5, -5

Комментарии:

1. Это происходит потому, что вы изменяете Vector аргумент во время вычисления, вместо того, чтобы использовать временный для результата.