본문 바로가기
Language/C++ & openGL

C++ 다이아몬드 출력하기

by javapp 자바앱 2019. 1. 9.
728x90

C++을 몇 일 접하지 않은 상태에서는

꽤나 까다로울 수 있을 것이다.


Tip은 중간의 별의 갯수를 지정한다.

size와 blank(공백)을

while문 안에서 for문을 2개 돌린다.


여기서 while문을 2개 돌리는데 

하나는 별이 늘어나도록

나머지 하나는 별이 줄어들도록 돌리는 것이다.


int main()

{

int size;

int blank;

int star = 1;


cout << ":";

cin >> size;              //  중간의 별 갯수

blank = size / 2;


while (1)                                        //위쪽 별 갯수 늘어나도록

{

for (int x = 0; x < blank; x++){

cout << " ";

}


for (int y = 0; y < star; y++){

cout << "*";

}


if (blank <= 0)

break;


blank--;

star += 2;


cout << endl;

}

cout << endl;


int blank2 = 1;

int star2 = size - 2;    //size 임의의 수


while (1)                                        //밑쪽 별 갯수 줄어들도록

{

if (size % 2 == 1)  // 홀수

{

for (int i = 0; i < blank2; i++){

cout << " ";

}


for (int j = 0; j < star2; j++){

cout << "*";

}

cout << endl;


blank2 += 1;

star2 -= 2;


if (star2 < 0)

break;

}else{

for (int i = 0; i < blank2; i++){

cout << " ";

}


for (int j = 0; j <= star2; j++){

cout << "*";

}


cout << endl;


blank2 += 1;

star2 -= 2;

if (star2 < 0)

break;

}

}

return 0;

}

댓글