인프런 커뮤니티 질문&답변
11:52 행렬x행렬 for문에서 막히네요.
해결된 질문
작성
·
214
0
2시간 동안 고민해봤지만 힘드네요. 계속 시도는 해보겠습니다.
<code>
#include <iostream>
using namespace std;
int main()
{
int m1[2][2]
{
{1, 2},
{3, 4},
};
int m2[2][2]
{
{5, 6},
{7, 8},
};
int m3[2][2] = {0};
// int m3[2][2] = {{1,2},{3,4}};
// m3[0][0] = m1[0][0] * m2[0][0] + m1[0][1] * m2[1][0];
// m3[0][1] = m1[0][0] * m2[0][1] + m1[0][1] * m2[1][1];
// m3[1][0] = m1[1][0] * m2[0][0] + m1[1][1] * m2[1][0];
// m3[1][1] = m1[1][0] * m2[0][1] + m1[1][1] * m2[1][1];
int multiplyTemp1;
int multiplyTemp2;
for (int row = 0; row < 2; ++row)
{
for (int col = 0; col < 2; ++col)
{
m3[row][row] += m1[row][col] * m2[col][row];
// if (row == 0 || row == 1)
// {
// multiplyTemp1 += m1[row][col] * m2[col][row];
// }
}
cout << endl;
}
// cout << multiplyTemp1 << " ";
// cout << endl;
/*
m3 = [00, 01]
[10, 11]
*
*/
for (int row = 0; row < 2; ++row)
{
for (int col = 0; col < 2; ++col)
{
cout << m3[row][col] << '\t';
}
cout << endl;
}
// for (int i = 0; i < 2; ++i)
// {
// for (int j = 0; j < 2; ++j)
// {
// // {1, 2} {5, 6}
// // {3, 4} {7, 8}
// m3[i][j] = m1[i][j] * m2[j][i] + m1[i][j + 1] * m2[j + 1][i];
// cout << m3[i][j] << "\t";
// }
// cout << endl;
// }
return 0;
}
<output>
PS C:\coding\tbc_review\TBCPP\Chapter6> g++ .\matrixByMatrix.cpp
PS C:\coding\tbc_review\TBCPP\Chapter6> .\a.exe
19 0
0 50
\ 형태로 대각 성분만 억지로 끼워맞췄습니다. ㅠㅠ
감사합니다.





