!!! срочно !!! c++ умножение матриц - Вопросы по С+

Вопрос !!! срочно !!! c++ умножение матриц

Регистрация
5 Авг 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Нужно чтобы результат выводился в новую матрицу 3 на 3 в виде:

180. 108. 52.5

202.5. 132 56

105. 72 35







#include <iostream>

#include <cmath>

using namespace std;



int main() {

float A[3][3] = {

{1.2, 0.9, 0.75},

{1.35, 1.1, 0.8},

{0.7, 0.6, 0.5}};

float B[3][1] = {

{150},

{120},

{70}};

float C[3][3];



for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

C[j] = A[j][0] * B[0][0];

}

}

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

C[j] += A[j][1] * B[1][0];

}

}

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

C[j] += A[j][2] * B[2][0];

}

}



// Выводим результат

cout << "Результат умножения матриц A и B:" << endl;

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

cout << C[j] << " ";

}

cout << endl;

}



return 0;

}
 
Регистрация
14 Мар 2013
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
Если ты умножаешь матрицу k*n на матрицу n*l, то результатом будет матрица k*l. И матрица C у тебя - не 3*3, а 3*1.
Само-же умножение делается так: double A[3][3] = {
{1.2, 0.9, 0.75},
{1.35, 1.1, 0.8},
{0.7, 0.6, 0.5}
};
double B[3][1] = {
{150},
{120},
{70}
};
double C[3][1] = {0}; // заполняем нулями

for (int i = 0; i < 3; i++) { // кол-во строк в A
for (int j = 0; j < 1; j++) { // кол-во столбцов в B
for (int k = 0; k < 3; k++) { // кол-во столбцов в A == кол-во строк в B
C[j] += A[k] * B[k][j];
}
}
}

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 1; j++) {
cout
 
Регистрация
24 Ноя 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
В какой программе вы пишите C++, в Python или Visual Studio Code?
 
Регистрация
20 Дек 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Умножение должно быть скалярным, то есть по правилам линейной алгебры? На С++ ХЗ, такие штуки умею делать только на Питоне
303705546_5ba5cfc569eed22db44ed7c46d85142d_800.png

 
Сверху Снизу