티스토리 뷰

728x90
SMALL

알고리즘 문제를 요즘 안 풀어서 그런지 몰라도 달팽이 배열을 풀지 못했다.

구글링해서 코드를 한 번 보고 이해해서 다시 풀었다.

#include <stdio.h>

int main(void)
{
	int len; //입력받는 배열의 길이
	int num; //배열의 요소(1,2,3~~)
	int arr[50][50]; //입력할 배열
	int i, j;
	int x, y; //배열의 행,열
	int t; //가로,세로가 각각 커졌다가 작아지는 걸 t에 부호를 붙여서 이용
	int jmax; //열의 최대값
	printf("달팽이 배열의 길이를 입력해라");
	scanf_s("%d", &len);
	num = 1;
	jmax = len;
	x = 0, y = -1;
	t = 1;
	while (0 < jmax) {
		for (i = 0; i < jmax; i++) {
			y = y + t;
			arr[x][y] = num++;
		}
		jmax--;
		for (i = 0; i < jmax; i++) {
			x = x + t;
			arr[x][y] = num++;
		}
		t = -t;
	}
	for (i = 0; i < len; i++) {
		for (j = 0; j < len; j++) {
			printf("%5d", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}
728x90
LIST

' > 윤성우 열혈 C 프로그래밍' 카테고리의 다른 글

문자와 문자열 관련 함수  (0) 2020.09.19
c언어 난수생성  (0) 2020.09.19
포인터2  (0) 2020.09.16
포인터1  (0) 2020.09.14
유클리드 호제법(최대공약수, 최소공배수)  (0) 2020.09.13
댓글
공지사항