컴공생의 다이어리
[c++] 문자(별표, 다이아몬드) 찍기 본문
문제
도형을 별표(=asterisk)와 다이아몬드로 그리는 프로그램을 작성하시오. 프로그램은 도형의 크기(N)를 입력으로 사용한다. N은 5에서 29사이의 홀수이며, 올바른 입력을 한다면 별표와 다이아몬드를 그릴 문자를 각각 입력해 출력하시오.
코드
#include <iostream>
using namespace std;
void Ast(int ast, char c)//asterisk function
{
int k = (ast - 1) / 2;
for (int i = 0; i < k; i++)
{
for (int j = 0; j < i; j++)
cout << ' ';
cout << c;
for (int j2 = k - (i + 1); j2 > 0; j2--)
cout << ' ';
cout << c;
for (int j3 = k - (i + 1); j3 > 0; j3--)
cout << ' ';
cout << c << endl;
}
for (int i = 0; i < k; i++)
cout << ' ';
cout << c << endl;
for (int i = k; i > 0; i--)
{
for (int j = 0; j < i - 1; j++)
cout << ' ';
cout << c;
for (int j2 = 0; j2 < k - i; j2++)
cout << ' ';
cout << c;
for (int j3 = 0; j3 < k - i; j3++)
cout << ' ';
cout << c << endl;
}
return;
}
void Dia(int dia, char c)//Diamond function
{
int k = (dia - 1) / 2;
for (int i = 0; i < k + 1; i++)
{
for (int j = k - i; j > 0; j--)
cout << ' ';
for (int j2 = 0; j2 < (1 + 2 * i); j2++)
cout << c;
cout << endl;
}
for (int i = 0; i < k; i++)
{
for (int j = 0; j < i + 1; j++)
cout << ' ';
for (int j2 = 0; j2 < dia - 2 * (i + 1); j2++)
cout << c;
cout << endl;
}
return;
}
int main()
{
int ast; //별표 사이즈
int dia; //다이아몬드 사이즈
char c1, c2; //별표 문자, 다이아몬드 문자
while (1)
{
cout << "출력할 별표(asterisk)의 사이즈 : ";
cin >> ast;
if (ast % 2 == 0 || ast < 5 || ast > 30)
cout << "잘못 입력하셨습니다. 5 ~ 29 사이의 홀수를 입력하세요!" << endl;
else
break;
}
cout << "출력할 별표(asterisk)의 문자 : ";
cin >> c1;
Ast(ast,c1);
cout << endl;
while (1)
{
cout << "출력할 다이아몬드(diamond)의 사이즈 : ";
cin >> dia;
if (dia % 2 == 0 || dia < 5 || dia > 30)
cout << "잘못 입력하셨습니다. 5 ~ 29 사이의 홀수를 입력하세요!" << endl;
else
break;
}
cout << "출력할 다이아몬드(diamond)의 문자 : ";
cin >> c2;
Dia(dia, c2);
return 0;
}
출력결과
728x90
반응형
'Development > C & C++' 카테고리의 다른 글
[c++] 정보 추가, 삭제, 검색 및 정렬 프로그램 (0) | 2021.02.11 |
---|---|
[c++] 교통 카드 잔액 (0) | 2021.02.10 |
[c++] forward_list container(std::forward_list) (0) | 2021.01.30 |
[c++] std::vector의 reserve(), resize(), shrink_to_fit() 함수 (0) | 2021.01.17 |
[c++] vector container(std::vector - 가변 크기 배열) (0) | 2021.01.17 |
Comments