728x90
반응형
아래와 같은 두 행렬의 곱을 계산해보도록 하자.
우선, 행렬의 곱이 형성되기 위해선, 1번 행렬의 열 개수와 2번 행렬의 행 개수가 동일해야 한다.
예제에서는, mat1 = (2, 3) 행렬, mat2 = (3, 2) 행렬이기 때문에 곱 결과는 (2, 2) 행렬이 만들어지게 된다.
행렬의 자세한 내용은 아래 위키를 참고하면 좋을 거 같다.
https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88
코드는 다음과 같다.
#include <stdio.h>
#define a 2
#define b 3
#define c 2
int main()
{
int mat1[a][b] = { {1, 2, 3}, {4, 5, 6}};
int mat2[b][c] = { {7, 8}, {9, 10}, {11, 12}};
int result[a][c] = {0, };
for(int i = 0; i < a; i++)
{
for(int j = 0; j < c; j++)
{
for(int z = 0; z < b; z++)
{
result[i][j] += mat1[i][z] * mat2[z][j];
}
}
}
for(int i = 0; i < a; i++)
{
for(int j = 0; j < c; j++)
{
printf("%3d ", result[i][j]);
}
printf("\n");
}
return 0;
}
반응형
'C Programming' 카테고리의 다른 글
C언어 포인터 기초 (필요성) - 공부하는 도비 (0) | 2022.10.13 |
---|---|
C언어 포인터 기초 (선언) - 공부하는 도비 (0) | 2022.10.13 |
C언어 2차원 배열의 합 - 공부하는 도비 (0) | 2022.10.03 |
C언어 공백 포함 문자열 입력 받기 (scanf, gets) - 공부하는 도비 (0) | 2022.10.03 |
C언어 입력한 년도에 따른 달력 출력 - 공부하는 도비 (1) | 2022.09.30 |