Home > Study > C Language > C Example > [ex73] 이차원 배열 Transpose

[ex73] 이차원 배열 Transpose
Study Language

문제 설명


4x4 배열의 값들을 출력 예시와 같이 b 배열(4x4)에 옮겨 저장하라

#include <stdio.h>

int a[4][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13, 14, 15, 16} };
int b[4][4];

void transpose1(void)
{
	// 코드 구현
}

void main(void)
{
	int i, j;

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

	transpose1();

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

출력 예시


1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
16 12 8 4
15 11 7 3
14 10 6 2
13 9 5 1

정답 코드


#include <stdio.h>

int a[4][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13, 14, 15, 16} };
int b[4][4];

void transpose1(void)
{
	// 코드 구현
	int i, j;
	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4; j++)
		{
			b[4 - 1 - j][4 - 1 - i] = a[i][j];
		}
	}
}

void main(void)
{
	int i, j;

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

	transpose1();

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

메모


printf 내부의 \n 습관화 필요