[문제 설명] 

다음과 같은 n*n 배열 구조를 출력해보자.

입력이 3인 경우 다음과 같이 출력한다.
3 4 9
2 5 8
1 6 7

입력이 5인 경우는 다음과 같이 출력한다.
5 6 15 16 25
4 7 14 17 24
3 8 13 18 23
2 9 12 19 22
1 10 11 20 21

입력이 n인 경우의 2차원 배열을 출력해보자.

 

[입력]

첫 번째 줄에 배열의 크기 n이 입력된다.
[입력값의 정의역]
1<=  n <= 100

[출력]

n*n 크기의 배열을 설명과 같이 채워 출력한다.

 

[입력 예시]

4

[출력 예시]

4 5 12 13

3 6 11 14

2 7 10 15

1 8 9 16

 

[코드]

#include<stdio.h>
int a[100][100];

int main() {
	
	int n, i, j, cnt;

	scanf("%d", &n);

	for (j = 0; j < n; j++) {
		if (j % 2 == 0)
			cnt = n * (j + 1);
		else
			cnt = n * (j + 1) - (n-1);
		for (i = 0; i < n; i++) {
			a[i][j] = cnt;
			if (j % 2 == 1)
				cnt++;
			else
				cnt--;
		}
	}

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

	return 0;
}

 

+ Recent posts