반응형
안녕하세요 성조입니다.
C++ 수업에서 교수님이 패턴으로 주신 문제인데 바로 풀이를 하지 못해서 작성해 둡니다.
* * * * * * * * * |
위와 같은 모습의 *을 출력할 수 있도록 하는 문제였습니다.
다시 표로 나타내면 다음과 같습니다.
* |
|
|
|
* |
|
* |
|
* |
|
|
|
* |
|
|
|
* |
|
* |
|
* |
|
|
|
* |
교수님한테 문제로 받았던 공백의 패턴입니다.
#include <iostream>
int main()
{
int k = 5;
for (int i = 1; i <= 5; i++, k--) {
for (int j = 1; j <= 5; j++) {
if (j == i || k == j)
std::cout << "*";
else
std::cout << " ";
}
std::cout << "\n";
}
}
소스코드입니다.
중첩 루프문으로
for(int i =1; i<= 5; i++)
for(int j = 1; j<=5;j++)
부분에서는 j==i 일 때 *를 출력하게 만들어주면
* * * * * |
위와 같은 모습이 나옵니다.
하지만 주어진 문제에서는 X 표시로 남아야 하기 때문에 같은 패턴으로 사라질 때마다 출력하는 게 필요합니다.
위의 중첩 반복문(Loop)을 사용해서 대각선을 그렸으므로 그에 대응하는 부분인
int k = 5;
for(int i =1;i<=5; i++, k--)
첫 번째 for 문에 k--를 추가해 줍니다.
그 이후에
두 번째 for 문에 있는 if 문에 ||(OR)을 사용해서 k와 j가 같은 경우에 조건을 걸어줍니다.
( i와 j가 같은 경우에 좌측 상단에서 우측 하단으로의 선이 그어졌기 때문에 감소 형태의 k를 j가 같아질 때도 출력해 주면 대칭 형태의 모습이 나옵니다.)
그렇게 나머지 부분을 작성해 주면 아래의 패턴을 가진 *출력하는 문제가 완성이 됩니다.
사실 이전에 네이버에서 포스팅 했던 것을 갖고 왔습니다.
하지만 본인에게 필요한 내용이라 생각해서 다시 옮겨 작성해서 업로드 합니다.
다음 포스팅 때 뵙겠습니다!
반응형
'C, C++ > C++' 카테고리의 다른 글
C++ 클래스를 이용하여 x자 출력하기 (0) | 2020.12.02 |
---|---|
명품 C++ Programming 2판 연습문제 3장 이론문제 개인 풀이 (5) | 2020.10.23 |
명품 C++ Programming 2판 연습문제 2장 실습문제 개인 풀이 (2) | 2020.10.15 |
명품 C++ Programming 연습문제 2장 이론문제 개인 풀이 (6) | 2020.10.14 |
명품 C++ Programming 연습문제 1장 (실습문제)개인 풀이 및 개인 해설 (0) | 2020.10.13 |