달팽이배열코드 만들었는데 평가좀해주세요.
레오
c언어 간단한 문법 공부하다가 달팽이배열 풀어보라면서 툭던져주길래 그래? 하고 풀어보려다가 하루를 날렸습니다
처음에 for두개 겹치면 되겠지하고 이게 도대체 어떤 규칙이 있는가 5x5 4x4 일일이 좌표 다구해서 좌표간에 규칙찾다가 몇시간 멘붕타고 달팽이배열이 진행되는 순서그대로하라는 힌트보고나니 4x4면 가로4번세로3가로3세로2가로2세로1가로1 이규칙과 방향 전환을위한 j=-j; 를 생각하고나니생각보다 금방풀리더군요.
힘들게 풀고나니 지금 자부심 엄청생기는데 이정도면 괜찮은건가요?
혹시 더간단한 코드가 있거나 고쳐야 할부분이 있나요?
#include stdafx.h
int main()
{
int x=0, y=0,u, t, j=1, n=0, i = 1;
int dal[50][50];
printf(u*u의 달팽이배열 u값은?);
scanf_s(%d, &u);
n = u;
while (n!=0)
{
for (t=0;t n ;t++)
{
dal[y][x] = i;
i++;
x += j;
}
x -= j;위에for문 실행시 x가 한칸 더가버려서 원상복구
y += j;
n--; for문반복횟수
for (t=0; tn ; t++)
{
dal[y][x] = i;
i++;
y += j;
}
y -= j; 위에for문 실행시 y가 한칸 더가버려서 원상복구
j = -j; 방향전환
x += j;
}
출력은 생략
-
탄성
오 좋습니다 ㅎㅎ
-
찰스
아 이렇게 뿌듯할수가 제가쓰는책은 답이 안적혀있었는데 나름 모범 답안이였군요 이재미로 c언어를 하는것인가...
-
뭘봐요
좋은데요!! 제가풀었던방법이랑도똑같고 그문제의답안도똑같아요