본문 바로가기

Language/C

[C언어] 행렬 곱 구하기

728x90
반응형

[공부/C언어] - (c언어) 회문 구하기

[공부/병렬 프로그래맹] - [MVAPICH]MVAPICH설치 및 MPI 테스트

최근 종강을 하고 학부 연구생으로 공부 하면서 방학을 보내고 있다.

따라서 방학에는 CUDA와 MPI을 공부하던중 행렬 곱을 구하는 프로그램을 작성해야 했고 기본적인것부터 공부하기 위해서 C언어로 행렬곱을 작성해 보았다.

해당 코드는 4X4행렬을 각각 1로 초기화을 하여 계산이 맞는지 확인하기 위해 작성을 하였다.

#include <stdio.h>
#include <stdlib.h>

/*함수 정의*/
int mutrix(); //행렬 곱셉

/*메인 함수*/
int main() {
	printf("=====행렬곱을 구하는 프로그램입니다====\n\n");
	mutrix();
	system("pause");
	return 0;
}

/*행렬 곱셈*/
int mutrix() {
	//변수 초기화
	int i, j, k;

	//행렬 초기화
	
	int A[4][4] = { {1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1} };

	int B[4][4] = { {1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1} };
	int C[4][4] = { 0 };

	for (i = 0; i < 4; i++) {
		for (j = 0; j < 4; j++) {
			for (k = 0; k < 4; k++) {
				C[i][j] += A[i][k] * B[k][j];
			}
		}
	}

	for (i = 0; i < 4; i++) {
		for (j = 0; j < 4;j++){
			printf("c[%d][%d] = %d\t",i,j,C[i][j]);
		}
		printf("\n");
	}
}

위의 코드를 실행한 화면이다.

728x90
반응형