C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[7601] Re:다른방법-헷갈리게 버전
방태윤 [] 875 읽음    2003-08-06 22:14
헷갈리는건 그냥 장난삼아...ㅋㅋ
for 를 사용한겁니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  #define n 9//갯수
  #define k(x,y) {a[y][x]=t++;Canvas->TextOut(x*20,y*20,AnsiString(a[y][x]));}
  #define f(a) for(a=i;a<n-1-i;a++)k(x,y);
  #define e(a) for(a=n-1-i;a>i;a--)k(x,y);
  int a[n][n];int x=0,y=0,i=0,t=0;
  for(;i<n/2;i++){x=y=i;f(x)f(y)e(x)e(y)}if(n%2)k(n/2,n/2)
}

위에꺼 디파인 풀어 논거입니다.^^
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  #define n 9//갯수
  int a[n][n];
  int x=0,y=0,i,t=0;

  for(i=0;i<n/2;i++){
    x=y=i;
    for(x=i;x<n-1-i;x++){
      a[y][x]=t++;
      Canvas->TextOut(x*30,y*30,AnsiString(a[y][x]));
    }
    for(y=i;y<n-1-i;y++){
      a[y][x]=t++;
      Canvas->TextOut(x*30,y*30,AnsiString(a[y][x]));
    }
    for(x=n-1-i;x>i;x--){
      a[y][x]=t++;
      Canvas->TextOut(x*30,y*30,AnsiString(a[y][x]));
    }
    for(y=n-1-i;y>i;y--){
      a[y][x]=t++;
      Canvas->TextOut(x*30,y*30,AnsiString(a[y][x]));
    }
  }
  if(n%2){
    a[n/2][n/2]=t++;
    Canvas->TextOut(n/2*30,n/2*30,AnsiString(a[n/2][n/2]));
  }
}
수야!╋ [sooya23]   2003-08-06 22:17 X
앗 ㅋㅋ 이거 리플 달린거 보고 다시 보려고하는데 지워져서 안오실려나보다 했었는데

이거 제데로 분석도 안되네여 ㅎㅎ;;
수야!╋ [sooya23]   2003-08-06 22:26 X
방금 분석해봤는데.. 생각이 바뀌는 차이로 이렇게 틀려지는가 싶네요 ㅡ_ㅡ;;
수야!╋ [sooya23]   2003-08-06 22:29 X
문제는 이게 아니었음으로 제가 제시했던 문제에 해당하려면 i와 t의 초기값을 1로바꾸심 대여 ㅡ,.ㅡ; 이소스 넘 멋짐 ㅡ_ㅡ;

+ -

관련 글 리스트
7599 재미있는 건의 [달팽이관] 수야!╋ 1027 2003/08/06
7936     늦었지만 울 동아리 후배가 한것~! utime->김성하 807 2003/10/15
7603     해미 버젼 정성훈.해미 763 2003/08/07
7601     Re:다른방법-헷갈리게 버전 방태윤 875 2003/08/06
7600     이런 방법도 있슴당.ㅋㅋ 홍지곤 909 2003/08/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.