연재 완료/C Lang 예제코드 모음

C언어 배열 주요예제2

라이피 (Lypi) 2018. 5. 12. 15:14
반응형

4. 3x3행렬 2개를 입력받아 두 행렬의 합을 출력하는 프로그램

#include <stdio.h>

void print_matrix(int Mat[3][3]);
void read_matrix(int Mat[3][3]);

int main(void)
{
	int mat1[3][3], mat2[3][3], sum[3][3];

	printf("첫번째 행렬을 입력하세요 : \n");
	read_matrix(mat1);
	printf("입력하신 행렬은 \n"); print_matrix(mat1); printf("\n 입니다. \n");

	printf("두번째 행렬을 입력하세요 : \n");
	read_matrix(mat2);
	printf("입력하신 행렬은 \n"); print_matrix(mat2); printf("\n 입니다. \n");


	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			sum[i][j] = mat1[i][j] + mat2[i][j];
		}
	}

	printf("두 행렬의 합은 \n"); print_matrix(sum); printf("\n 입니다. \n");

}

void print_matrix(int Mat[3][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("%d ", Mat[i][j]);
		}
		printf("\n");
	}
}

void read_matrix(int Mat[3][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("[%d][%d]값을 입력하세요 : ",i+1,j+1); scanf_s("%d", &Mat[i][j]);
		}
	}
}


변형 두 행렬의 곱

#include <stdio.h>

void print_matrix(int Mat[3][3]);
void read_matrix(int Mat[3][3]);

int main(void)
{
	int mat1[3][3], mat2[3][3], result[3][3];

	printf("첫번째 행렬을 입력하세요 : \n");
	read_matrix(mat1);
	printf("입력하신 행렬은 \n"); print_matrix(mat1); printf("\n 입니다. \n");

	printf("두번째 행렬을 입력하세요 : \n");
	read_matrix(mat2);
	printf("입력하신 행렬은 \n"); print_matrix(mat2); printf("\n 입니다. \n");

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			int sum = 0;
			for (int k = 0; k < 3; k++) {
				sum += mat1[i][k] * mat2[k][j];
			}
			result[i][j] = sum;
		}
	}

	printf("두 행렬의 곱은 \n"); print_matrix(result); printf("\n 입니다. \n");

}

void print_matrix(int Mat[3][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("%d ", Mat[i][j]);
		}
		printf("\n");
	}
}

void read_matrix(int Mat[3][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("[%d][%d]값을 입력하세요 : ",i+1,j+1); scanf_s("%d", &Mat[i][j]);
		}
	}
}


//일단 3*3행렬로만 했음. 

반응형