이차원 배열에서 곱인데여 곱이랑 합이랑 같이나오게 도와주세요
가장
#includestdio.h
#define ROWS 2
#define COLS 3
typedef int matrixA[ROWS][COLS];
typedef int matrixB[COLS][ROWS];
typedef int resultC[ROWS][ROWS];
void multiply(resultC r, matrixA a, matrixB b);
void display(resultC r, int M);
int main(void)
{
matrixA a = {{1, 2, 2}, {2, 3, 1}};
matrixB b = {{1, 2}, {1, 3}, {1, 2}};
resultC r = {0};
int i, j;
printf(곱할 두 행렬은 다음입니다.\n);
for (i=0; i ROWS; i++) {
for (j=0; j COLS; j++) {
printf(%4d, a[i] [j]);
}
printf(\n);
}
printf(\n);
display(b, COLS);
printf(위 두 행렬의 곱은 다음입니다.\n);
multiply(r, a, b);
display(r, ROWS);
return 0;
}
void multiply(resultC r, matrixA a, matrixB b) {
int i, j, k;
for (i=0; i ROWS; i++) {
for (j=0; j ROWS; j++) {
for (k=0; k COLS; k++) {
* (r[i] + j) += *(a[i] + k) * *(b[k] + j);
}
}
}
}
void display(resultC r, int M) {
int i, j;
for (i=0; i M; i++) {
for (j=0; j ROWS; j++) {
printf(%4d, r[i] [j]);
}
printf(\n);
}
printf(\n);
}
-
하예
행렬 A,B의 크기가 같아야 합이 가능합니다. 여기서는 A B 행렬 크기 자체가
다르게 정의 되어 있으니.. 합 자체가 불가능 하죠