...
행렬의 곱셈 구현코드
C언어로 행렬의 곱셈 알고리즘을 구현해보았다.
밑에 코드를 참고하여 연습해보자. 그대로 긁어 실행하면 된다.
#include <string.h>
#include <stdio.h>
#define N 4
int main(void)
{
int A[2][3] = { 1, 2, 3, 4, 5, 6 };
int B[3][4] = { 3, 4, 5, 6, 1, 2, 4, 3, 4, 2, 6, 1 };
int C[2][4] = { 0 };
int i, j, k, cum = 0;
printf("행렬A\n");
for (i = 0; i < 2; i++)
{
printf("[ ");
for (j = 0; j < 3; j++)
{
printf("%d ", A[i][j]);
}
printf("]");
putchar('\n');
}
printf("\n행렬B\n");
for (i = 0; i < 3; i++)
{
printf("[ ");
for (j = 0; j < 4; j++)
{
printf("%d ", B[i][j]);
}
printf("]");
putchar('\n');
}
/*k=0;
for(i=0;i < 4;i++)
{
cum=0;
for(j=0;j < 3;j++)
{
cum += (A[0][j] *B[j][i]);
}
C[0][k] = cum;
k++;
}
k=0;
for(i=0;i < 4;i++)
{
cum=0;
for(j=0;j < 3;j++)
{
cum += A[1][j] *B[j][i];
}
C[1][k] = cum;
k++;
}*/
for (i = 0; i < 2; i++)
{
for (j = 0; j < 4; j++)
{
cum = 0;
for (k = 0; k < 3; k++)
{
cum += A[i][k] *B[k][j];
}
C[i][j] = cum;
}
}
printf("\n행렬C = A *B\n");
for (i = 0; i < 2; i++)
{
printf("[ ");
for (j = 0; j < 4; j++)
{
printf("%d ", C[i][j]);
}
printf("]");
putchar('\n');
}
}
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.