본문 바로가기

programming language/C 언어

열혈 c프로그래밍 문제16-1번(2차원 배열 활용)

<문제 1>

문제를 좀 잘못 읽고 푼 풀이인데, 출력의 결과로 2단 3단 4단이 나온다.

#include<stdio.h>
int main(void)
{
	int arr[3][9] = {
		{2,4,6,8,10,12,14,16,18},
		{3,6,9,12,15,18,21,24,27},
		{4,8,12,16,20,24,28,32,36}
	};
	int i, j;

	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 9; j++)
		{
			printf(" %d x %d = %d \n", i + 2, j + 1, arr[i][j]);
		}
		printf("\n");
	}


     return 0;
}

 

<문제 1 정확한? 풀이>

#include<stdio.h>
int main(void)
{
	int arr[3][9];
	int i, j;
	
	for(i = 0;i<3;i++)
		for (j = 0; j < 9; j++)
		{
			arr[i][j] = (i + 2) * (j + 1);
		}
	
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 9; j++)
			printf("%4d", arr[i][j]);
		printf("\n");
	}

     return 0;
}

%4d를 왜 써줄까 생각했는데, 4칸씩 출력한다라는 의미이고, 문제 1 예시 그림에 나온 것과 비슷하게 출력을 할 수 있어서 % 4d를 사용해 준 것 같다. 솔직히 여러 수를 출력하다 보니 칸을 구별 해주지 않으면 상당히 알아보기가 힘들다.

%2d를 사용해주면 2자리 숫자인 수가 있어서, 깔끔하지 않다.