#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
аргумент во время вычисления, вместо того, чтобы использовать временный для результата.