실습1에서 작성한 의사코드를 C언어로 구현
입력

출력
조건
#include <stdio.h>
#define MAT_SIZE 5 /*배열의 길이 정의*/
void Transpose_Mat(int A[][MAT_SIZE], int B[][MAT_SIZE]) {
int i, j;
/*A의 행과 열을 B에 열과 행에 저장*/
for (i = 0; i < MAT_SIZE; i++) {
for (j = 0; j < MAT_SIZE; j++) {
B[j][i] = A[i][j];
}
}
}
void Print_Mat(int arr[][MAT_SIZE]) {
int i, j;
/*배열을 for문의 중첩을 이용해서 출력*/
for (i = 0; i < MAT_SIZE; i++) {
for (j = 0; j < MAT_SIZE; j++) {
printf("%d ", arr[i][j]);
}
printf("\\n");
}
printf("\\n");
}
int main()
{
int A[5][5] = {{3,2,6,4,5}, {8,3,5,9,1}, {0,3,2,7,9}, {2,1,5,2,4}, {5,0,8,2,3}};
int B[5][5];
/*A출력*/
Print_Mat(A);
/*A의 전치행렬 B를 만드는 함수*/
Transpose_Mat(A, B);
/*출력*/
Print_Mat(B);
}

최근 파이썬과 자바를 이용해서 코드를 만드느라 C에 대해서는 굉장히 잊은게 많았는데 이렇게 간단한 문제를 통해서 C를 공부하니 좋았던거 같다. 특히 함수의 매개값으로 이차원 배열을 넘겨줄때 처음에는 포인터를 사용했었는데 저렇게 배열로 편하게 넘길 수 있다는 것이 기억이 다시 났다. 이번 과제를 통해서 C에 대해 부족했던 것을 다시 공부할 생각이다.