본문 바로가기

+ 컴퓨터/C

[C언어] 3중 for문을 이용하여 3X3 행렬의 곱 구하기


3중 for 문을 이용하여 c언어에서 행렬의 곱을 구해 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#define ROWS 3
#define COLS 3

int main(void)
{
int A[ROWS][COLS] = { {2,3,0},
{8,9,1},
{7,0,5} };
int B[ROWS][COLS] = { {1,0,0},
{1,0,0},
{1,0,0} };
int C[ROWS][COLS];
int r,c,n;


//두개의 행렬을 곱한다.

for(c = 0; c < COLS; c++)
{
for(r = 0; r < ROWS ; r++)
{
C[r][c] = 0;
for(n = 0; n < ROWS ; n++)
C[r][c] += A[r][n]*B[n][c];
}
}

for(r = 0; r < ROWS; r++)
{
for(c = 0; c < COLS ; c++)
printf("%d " , C[r][c]);
printf("\n") ;
}
}