[c언어] 행렬 곱
2020. 12. 21. 16:39ㆍComputer Science/C
행렬 X(4 X 2) 와 Y(2 X 3)에 대해서 두 행렬의 곱 (Z에 넣어서)을 구하여 출력하는 프로그램을 작성한다.
#include <stdio.h>
void printMatrix(int a[][3], int size)
{
for (int i = 0; i < size; i++) {
for (int j = 0; j < 3; j++) {
printf("%5d", a[i][j]);
}
printf("\n");
}
}
void readMatrix(int a[][2], int size)
{
for (int i = 0; i < size; i++) {
for (int j = 0; j < 2; j++) {
scanf("%d", &a[i][j]);
}
}
}
void readMatrix2(int b[][3], int size)
{
for (int i = 0; i < size; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &b[i][j]);
}
}
}
void matrixMultiplication(int a[][2], int b[][3], int c[][3], int size)
{
int i, j, k;
for (i = 0; i < size; i++)
for (j = 0; j < 3; j++) {
c[i][j] = 0;
for (k = 0; k < 2; k++)
c[i][j] += a[i][k] * b[k][j];
}
}
int main(void)
{
int X[4][2], Y[2][3], Z[4][3];
printf("(4 x 2) 행렬 X 입력:\n");
readMatrix(X, 4);
printf("(2 x 3) 행렬 Y 입력:\n");
readMatrix2(Y, 2);
matrixMultiplication(X, Y, Z, 4);
printf("행렬 곱:\n"); printMatrix(Z, 4);
printf("\n");
}
결과
'Computer Science > C' 카테고리의 다른 글
[c언어] 합집합, 교집합, 차집합 (배열과 함수) (0) | 2020.12.21 |
---|---|
[c언어] 지뢰 찾기 (0) | 2020.12.21 |
[c언어] 행렬 합 (0) | 2020.12.21 |
[c언어] 2차원 배열 90도 회전 (0) | 2020.12.21 |
[c언어] 최대공약수 구하기 (재귀함수) (1) | 2020.12.21 |