[문제] 흐르는 강물과 같이 역동적인 그림 출력 결과를 얻고 싶다! 다음 조건에 맞추어 결과화면과 같이 출력이 되도록 프로그램을 작성하십시오.
[조건]
- 입력 값은 없고, 전체 공간(SPACE)와 최대 길이(MAX) 및 반복 횟수(CYCLE)는 상수(#define)으로 설정한다.
- 전체공간(SPACE)은 좌측('=') 문자열 부분과 우측('@')사이의 공란(' ')을 포함한 전체 길이를 말한다.
- 최대 길이(MAX)는 공란부분을 제외한 문자열('=','@')의 최대 길이를 말한다.
- 즉, 좌측 문자열 길이(COUNT)를 반복 인덱스로 설정한다면, 공란은 '전체공간(SPACE) - 최대길이(MAX)'가 되고, 우측 문자열 길이는
'최대길이(MAX) - 좌측 문자열 길이(COUNT)'가 된다.
- 반복 횟수(CYCLE)은 좌측 문자열 기준으로 길이(COUNT)가 최대 길이(MAX)까지 출력 후, 다시 그 길이(COUNT)가 0이 될 때, 횟수 1번으로 정한다.
#include <stdio.h>
#define SPACE 50
#define MAX 25
#define CYCLE 10
int main()
{
int count = 0, count2 =0; //왼쪽 몇개인지
for (int i = 0; i < CYCLE; i++) { //사이클 반복
for (int j = SPACE - MAX; j > 0; j--) { //윗쪽
for (count = 0; count <= (SPACE - MAX) - j; count++) {
printf("=");
}
for (int a = 0; a < SPACE - MAX-1; a++) { printf(" "); } //공백출력
for (int b = SPACE - MAX - count-1; b >= 0; b--) {
printf("@");
}
printf("\n");
}
for (int d = 1; d < SPACE-MAX+1; d++) { //아래쪽
for (count2 = 0; count2 < SPACE - MAX - d; count2++) {
printf("=");
}
for (int e = 0; e< SPACE - MAX-1; e++) { printf(" "); } //공백출력
for (int f = SPACE - MAX - count2; f> 0; f--) {
printf("@");
}
printf("\n");
}
}
return 0;
}
'PROGRAMMING CODE > C' 카테고리의 다른 글
[SOLUTION] TIC-TAC-TOE(가장 간단한 알고리즘) (0) | 2021.10.18 |
---|---|
[SOLUTION] 2차원 배열 하나로 학생들의 점수(난수 이용), 평균 구하기 (0) | 2021.10.18 |
[SOLUTION] 회문 정수 판별 (0) | 2021.10.18 |
[SOLUTION] 완전수 판별 (0) | 2021.10.18 |
[SOLUTION] 행렬의 덧셈 뺄셈 (0) | 2021.10.18 |