2014년 1월 1일 수요일

레포트 전용 골뱅이 그리기 ver 3[재직자무료교육/프로그래머교육/구로디지털IT교육,오라클/자바/닷넷/C#/iOS/안드로이드/아이폰교육]

레포트 전용 골뱅이 그리기 ver 3[재직자무료교육/프로그래머교육/구로디지털IT교육,오라클/자바/닷넷/C#/iOS/안드로이드/아이폰교육]



// 이전 소스와 동일하나  큰배열을 잡았을때의 단점을 극복하기위해
// 동적메모리  할당을 사용한 예제이다.
// 배열은 유용하나 지금같은 경우 100*100 사이즈를 max로 잡았기 때문에
// 언제나 40000 byte를 stack에 할당 받아야 하고
// 더 문제는 그보다 큰 골뱅이는 그릴수 없다.
// 그래도 강제로 그릴려고 100 이상을 입력하면
// 여러분은 화면에서 반갑지 않은 메모리 참조 error를 보게 될것이다. ^^
// 이때 사용자의 입력을 보고 그 만큼만 실행시에 할당할 필요가 있는데
// 그것이 동적 할당이다.  C에서는 malloc - free쌍이다..
// 그리 어렵지 않은 문법이나 언제가 거부감 느껴지는 문법이다.


#include <stdio.h>
#include <stdlib.h>
main()
{
        int *a,i,row=0,col=-1,num=0,max,count;

        printf("input count:");
        scanf("%d", &count);

        max = count;
    a = (int *)malloc(max*max*sizeof(int));
        while(1) {
                for(i=0; i<count; i++)
                        a[row*max + ++col] = ++num;

                if(--count == 0) break;

                for(i=0; i<count; i++)
                        a[++row*max + col] = ++num;
                for(i=0; i<count; i++)
                        a[row*max + --col] = ++num;

                if(--count == 0) break;

                for(i=0; i<count; i++)
                        a[--row*max + col] = ++num;
        }
        for(i=0; i<max*max; i++) {
                printf("%4d", a[i]);
                if( (i+1)%max == 0)
                        printf("\n");
        }
        free(a);
}



  • JAVA

  • ORACLE

  • iPhone/Android

  • .NET

  • 표준웹/HTML5

  • 채용/취업무료교육

  • 초보자(재학생)코스

  • 댓글 없음:

    댓글 쓰기