#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void printMatrix(int array[][4], int row, int col) {
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < col; j++)
printf("%d\t", array[i][j]);
printf("\n");
}
}
void printMatrix2(int array[][3], int row, int col) {
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < col; j++)
printf("%d\t", array[i][j]);
printf("\n");
}
}
// M by N 행렬을 전치(transpose)한다.
// matrix[][] : 전치할 대상 transpose[][] : 전치해서 저장할 곳
// row: 행 col: 열
void transposeMbyN(int matrix[][4], int transposed[][3], int row, int col) {
int i, j, count = 0;
for (i = 0; i < row; i++) {
for (j = 0; j < col; j++) {
transposed[j][i] = matrix[i][j]; // 행과 열 인덱스를 바꾸어 저장.
count++;
}
}
printf("%d개의 원소를 전치했습니다.\n", count);
}
int main() {
int matrix[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
int transposed[4][3] = { 0, };
printMatrix(matrix, 3, 4);
printf("-------------------------------\n");
transposeMbyN(matrix, transposed, 3, 4);
printMatrix2(transposed, 4, 3);
return 0;
}
------------출력 결과---------------
1 2 3 4
5 6 7 8
9 10 11 12
-------------------------------
12개의 원소를 전치했습니다.
1 5 9
2 6 10
3 7 11
4 8 12
카테고리 없음