[C] 마름모 출력

심플디 2013.06.23 12:01 조회 수 : 5789

201101812.c



소희.png





#include <stdio.h>

 

int main (void)

{

    // 변수를선언합니다.

          char Array[9][9];      // 별표를담는배열변수

          int i,      // for문을위한배열(x)

              j,      // for문을위한배열(y)

              arr_x,  // for문에배열을초기화시키기위한배열(x)

              arr_y;  // for문에배열을초기화시키기위한배열(y)

          int val,    // 입력변수

              insp,   // 홀짝변수

              Offset, // 중간변수

              iTemp,  // 배열초기화변수

              Minus,  // 배열순차변수(증감변수)

              Plus;   // 배열순차변수(증가변수)

 

    while(1)

    {

        // 변수를사용자가초기화시킵니다.

            printf("변수입력: ");

            scanf("%d", &val);

 

        // 배열을포함한일반변수들을기본값으로초기화합니다.

            insp = val%2;                                           // 변수의홀짝을검사할변수를초기화

            Offset = (val / 2.0) - 0.5;                      // 변수의중간값을초기화

            for(i=0; i<9; i++)

                for(j=0; j<9; j++)

                    Array[i][j]=' ';                 // char 배열변수를공백으로초기화

 

            Minus=0;                                                // 증가변수초기화

            Plus=val-1;                                                     // 증감변수초기화

 

        // 변수를검사합니다.

            if(val<3 || 9<val)

            {

                printf("범위에속하지않습니다. (3~9)n");

                

                break;  // 범위내에없다면반복종료

            }

    if(insp==0)

            {

                printf("짝수입니다.n");

                break// 짝수면반복종료

            }

 

       // 계산을통한변수초기화

            for(i=-Offset, arr_x=0;  i<=Offset; i++, arr_x++)

            {

                for(j=-Offset, arr_y=0; j<=Offset; j++, arr_y++)

                {

                    if(Minus<=Offset) // 좌표의중간범위까지초기화

                    {

                        // 1사분면

                        iTemp=Offset+Minus;

                        Array[arr_x][iTemp]='*';

 

                        // 2사분면

                        iTemp=Offset-Minus;

                        Array[arr_x][iTemp]='*';

                    }

                    if(Minus>Offset)  // 좌표의중간을넘어선범위를초기화

                    {

                        // 3사분면

                        iTemp = Offset-Plus;

                        Array[arr_x][iTemp]='*';

 

                        // 4사분면

                        iTemp = Offset+Plus;

                        Array[arr_x][iTemp]='*';

                    }

                }

                Plus--;               // 증감코드

                Minus++;      // 증가코드

            }

 

        // 출력코드

            for(i=0; i<val; i++)

            {

                for(j=0; j<val; j++)

                {

                    printf("%c", Array[i][j]);

                    if(j==val-1)

                        printf("n");

                }

            }

    }

 

    // 프로그램종료

        printf("프로그램을종료합니다.n");

        return 0;

}

번호 제목 글쓴이 날짜 조회 수
28 [Tip] VC++ express 2012 file 심플디 2018.06.28 51
27 [Tip] VC++ express 2010 file 심플디 2018.06.28 41
26 [C] 계절학기 강의자료 : 2주차 Reference file 심플디 2018.06.28 44
25 [C] 계절학기 강의자료 : 1주차 Reference file 심플디 2018.06.28 60
24 [Tip] C언어 공부법과 책추천 [퍼옴] 심플디 2018.06.04 47
23 scanf_s 사용하지 않는 방법 심플디 2018.02.01 50
22 [C] NXT를 이용하여 2m를 움직이는 로봇을 제시하시오. (문제제시) 심플디 2016.12.24 52
21 [C] 2중 for문과 2중 while문을 이용하여 구구단 결과 출력하기 (문제제시) [4] 심플디 2016.12.24 52
20 [C] ASCII code를 이용하여 문자 및 숫자를 가려내기 (문제제시) 심플디 2016.12.24 43
19 [C] AutoCAD에서 직사각형을 보여주는 파일 출력하기, 불러오기 (문제제시) 심플디 2016.12.24 43
18 [C] 적분 프로그래밍 (문제제시) [2] 심플디 2016.12.24 45
17 [C] 이름을 입력받고 해당 배열을 동적할당 시키는 예제 (문제제시) 심플디 2016.12.24 49
16 [C] 거품 정렬 -1 (syj) 노예 2016.12.18 43
15 [C] 선택 정렬 - 1 SYJ) 노예 2016.12.18 53
14 [C] 2차원 배열을 함수로 전달하는 방안 [1] file 심플디 2016.12.16 53
13 [C] 20161206 송유준 강의자료 Day 01~Day 03 file 심플디 2016.12.07 22
12 [알고리즘] 시각화에 좋은 사이트 file 심플디 2016.08.08 46
11 [ERROR] VC++2015 "fatal error LNK1168 ~.exe을(를) 쓰기용으로 열 수 없습니다." 에러를 해결했다. 심플디 2016.01.23 69
10 [ERROR] VC++2015 "fatal error LNK1168 ~.exe을(를) 쓰기용으로 열 수 없습니다." 에러를 해결해보기 위해 삽질해 보았다. file 심플디 2015.11.27 146
» [C] 마름모 출력 file 심플디 2013.06.23 5789