강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

호두님의 프로필 이미지
호두

작성한 질문수

홍정모의 따라하며 배우는 C++

6.5 정적 다차원 배열

11:52 행렬x행렬 for문에서 막히네요.

해결된 질문

작성

·

214

0

2시간 동안 고민해봤지만 힘드네요. 계속 시도는 해보겠습니다.

<code>

#include <iostream>

using namespace std;

int main()
{
    int m1[2][2]
    {
        {12},
        {34},
    };

    int m2[2][2]
    {
        {56},     
        {78},     
    };

    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

\ 형태로 대각 성분만 억지로 끼워맞췄습니다. ㅠㅠ

감사합니다.

답변 1

1

홍정모님의 프로필 이미지
홍정모
지식공유자

열심히 하고 계시네요. 생각이 막혔을 때는 5분씩 쉬면 아이디어가 떠오기도 합니다.

호두님의 프로필 이미지
호두

작성한 질문수

질문하기