Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

!!! СРОЧНО !!! C++ Умножение матриц

щж Ученик (74), закрыт 1 месяц назад
Нужно чтобы результат выводился в новую матрицу 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][i] = A[j][0] * B[0][0];
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
C[j][i] += A[j][1] * B[1][0];
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
C[j][i] += 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[i][j] << " ";
}
cout << endl;
}

return 0;
}
Лучший ответ
Андрей Высший разум (416349) 2 месяца назад
Если ты умножаешь матрицу 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[i][j] += A[i][k] * B[k][j];
}
}
}

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 1; j++) {
cout << C[i][j] << ' ';
}
cout << '\n';
}
Остальные ответы
Виталий Ц Ученик (54) 2 месяца назад
а ты где сейчас? для чего нужно это решить?
Celtic Hammer Мудрец (10231) 2 месяца назад
Умножение должно быть скалярным, то есть по правилам линейной алгебры? На С++ ХЗ, такие штуки умею делать только на Питоне
HuginМыслитель (8163) 2 месяца назад
Ну и бредни
Celtic Hammer Мудрец (10231) Пруф про "бредни" в студию
HuginМыслитель (8163) 2 месяца назад
Хотя я более чем уверен, что наш знаменитый знаток просто матрицы с векторами перепутал, видимо слишком занят изучением произведения матриц не по правилам линейной алгебры
Маргарита Залогина Знаток (340) 2 месяца назад
Это че
Nikita228007ggtop1Знаток (311) 2 месяца назад
Информатика 8 класс
Маргарита Залогина Знаток (340) Nikita228007ggtop1, ужас
Руслан Чапхаев Ученик (5) 2 месяца назад
В какой программе вы пишите C++, в Python или Visual Studio Code?
щжУченик (74) 2 месяца назад
Visual Studio
Инспектор Жопидý Просветленный (25936) 2 месяца назад
Да, такой код можно написать. Вот один из вариантов:

```c++
#include <iostream>

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];

// Умножаем матрицы A и B
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 3; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}

// Выводим результат
cout << "Результат умножения матриц A и B:" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}

return 0;
}
```

Этот код работает следующим образом:

* Сначала мы объявляем две матрицы, A и B, размером 3 на 3.
* Затем мы создаем новую матрицу C размером 3 на 3.
* Далее, мы используем цикл для умножения каждой строки матрицы A на каждую колонку матрицы B.
* В результате каждой итерации цикла в ячейку матрицы C будет записана сумма произведений элементов строки матрицы A на соответствующие элементы колонки матрицы B.
* Наконец, мы выводим результат умножения матриц A и B на экран.

В данном случае, результат умножения матриц A и B будет соответствовать следующему массиву:

```
180 108 52.5
202.5 132 56
105 72 35
```

Этот массив совпадает с тем, который вы указали в задании.
Рома Кобелев Ученик (183) 2 месяца назад
Для умножения матриц в C++ можно использовать следующий код:
cpp
#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][i] = A[j][0] * B[0][0];
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
C[j][i] += A[j][1] * B[1][0];
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
C[j][i] += 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[i][j] << " ";
}
cout << endl;
}

return 0;
}

Результат умножения матриц A и B будет выведен в новую матрицу 3 на 3 в виде:
180. 108. 52.5
202.5. 132 56
105. 72 35
Похожие вопросы