반응형
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행렬로만 했음.
반응형