본문 바로가기
  • fishing...
  • eating...
MISCELLANEOUSNESS

for로 마름모 출력하기..

by 회색뿔 2007. 10. 30.

반복문 연습 마름모 출력하기..
RedBeanZ C언어 그룹 스터디 하다 만든 소스 예제 파일..

뭐 두서없이 설명하면서 만든 것이지만.. 중첩 포문 이해하는데 도움이 됬으면 한다..

#include <stdio.h>

int main()
{
        int n, m;
        int i, j;
        int nLine, nCnt, nSpace;
 
        do
        {
                scanf( "%d, %d", &n, &m );

                if( m == 1 )
                {
                        nLine = n / 2;
                        nCnt = n;
                        nSpace = 1;

                        for( i = 0; i <= nLine; i++ )
                        {
                                for( j = 0; j < nCnt; j++ )
                                        printf( "*" );

                                for( j = 0; j < nSpace; j++ )
                                        printf( "1" );

                                for( j = 0; j < nCnt; j++ )
                                        printf( "*" );

                                 printf( "\n" );

                                nSpace += 4;
                                 nCnt -= 2;
                        }

                        nSpace -= 4;
                        nCnt += 2;

   
                        for( i = 0; i < nLine; i++ )
                        {
                                nSpace -= 4;
                                nCnt += 2;

                                for( j = 0; j < nCnt; j++ )
                                        printf( "*" );

                                for( j = 0; j < nSpace; j++ )
                                        printf( "1" );

                                for( j = 0; j < nCnt; j++ )
                                        printf( "*" );

                                printf( "\n" );
                        }
                }
                else if( m == 2 )
                {
                        nCnt = -1;
                        nSpace = -1;
                        nLine = n / 2;

                        for( i = 0; i < nLine; i++ )
                        {
                                nCnt += 2;
                                nSpace += 2;

                                for( j = 0; j < nCnt; j++ )
                                        printf( "*" );

                                for( j = 0; j < nSpace; j++ )
                                        printf( "1" );

                                for( j = 0; j < n * 2 - nSpace - nCnt - 1; j++ )
                                        printf( "*" );

                                printf( "\n" );
                        }
                        for( i = 0; i < nLine - 1; i++ )
                        {
                                nCnt -= 2;
                                nSpace -= 2;

                                for( j = 0; j < nCnt; j++ )
                                        printf( "*" );

                                for( j = 0; j < nSpace; j++ )
                                        printf( "1" );

                                for( j = 0; j < n * 2 - nSpace - nCnt - 1; j++ )
                                        printf( "*" );

                                printf( "\n" );
                        }
                }
        }while( m <= 3 );
}


사용자 삽입 이미지