22019, 1/1101 회원가입  로그인  
   blueh4g
   http://blueh4g.org
   밑에 어느분 달팽이배열 말씀하셔서 ;ㅅ;

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=21023 [복사]


가만 생각해보니 프로그래밍 공부하면서 달팽이배열 만들어본적이 없는듯 해서

오랜만에 코딩연습 ;ㅅ;




#include<stdio.h>

int main(void){
int map[16][16];
int input, i, j, chk, x=0, y=0, dir=0;
double t;

printf("input[1-16] : ");
scanf("%d",&input);

chk=input;
for(i=1,t=input;i<=input*input;i++){
  map[x][y]=i;

  if(i==chk){
   dir++;
   t=t-0.5;
   chk+=(int)t;
  }

  switch(dir%4){
   case 0 : x++; break;
   case 1 : y++; break;
   case 2 : x--; break;
   case 3 : y--; break;
  }
}

/*print map*/
for(i=0;i<input;i++){
  for(j=0;j<input;j++) printf("%4d",map[j][i]);
  printf("\r\n");
}
return 0;
}


저도 16 까지 입력받도록 해서 출력까지 만들어 봤는데..
흐..... double 형 쓴게 한이되네요.. 좀 더 간단히 dir을 구할 방법이 분명 있을텐데, 수학에 약해서 ㅌㅌㅌㅌ

  Hit : 9247     Date : 2011/06/10 04:10



    
멍멍 요맨 코딩맨 요~ 2011/06/10  
soyeong9511 ㅎㅎ뭔소린지모르겠다...
공부의필요성을 느끼네요
2011/06/10  
blueh4g 멍멍 // yo bro~, your coding skill better than mine@ T_T
seyeong9511 // 조금만 공부하시면 될듯 해요 ㅋㅋ
2011/06/11  
capt_0669 저도 나중에 많이 배우고 나서 또 계속 만들어봐야죠
전 짝수,홀수 두개의 경우를 생각하고 했는데
이래서 똑같은 코드가 두개로되서 길게 됬는데
님꺼 코드보고 공부종 해야겠네요~~ㅎㅎ
2011/06/11  
별빛을담아 달팽이 배열 ㄱ- 2011/06/11  
blueh4g 대충이나마 주석이랑 약간의 설명을 써두었으니 참고하실분은 http://blueh4g.tistory.com/54 2011/06/13