[IT]/C++
배열을 이용한 행렬곱
givemebro
2020. 3. 12. 10:01
반응형
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void insert(int mat1[4][3], int mat2[3][2]) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
mat1[i][j] = i * 3 + j;
if (i < 3 && j < 2) {
scanf("%d", &mat2[i][j]);
}
}
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
printf(" %3d", mat1[i][j]);
}
puts("");
}
puts("");
puts("");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf(" %3d", mat2[i][j]);
}
puts("");
}
puts("");
puts("");
}
void mul(int mat1[4][3], int mat2[3][2], int result[4][2]) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 3; k++) {
result[i][j] += mat1[i][k] * mat2[k][j];
}
}
}
}
void printresult(int result[4][2]) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
printf(" %3d ", result[i][j]);
}
puts("");
}
}
int main() {
int mat1[4][3], mat2[3][2], result[4][2] = { {0,0}, };
memset(result, 0, sizeof(int));
insert(mat1, mat2);
mul(mat1, mat2, result);
printresult(result);
return 0;
}
/*
1
0
0
0
1
1
*/
반응형