[문제 설명]

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

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

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

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

 

[입력]

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

[출력]

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

 

[입력 예시]

2 3

[출력 예시]

5 4 1

6 3 2

 

[코드]

#include<stdio.h>

int main() {
	int a[100][100];
	int n, m, i, j, cnt;

	scanf("%d %d", &n, &m);

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

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

	return 0;
}

 

 

+ Recent posts