외랑 님이 쓰신 글 :
: : 질문 1. 11번행에서 row의 초기값은 8에 해당하는건지요?
: 네.. draw_box(8, 35); 를 호출하였으므로 row의 초기값은 8로 전달되게 됩니다.
: : 11 : for ( ; row >0 ; row --)
: : 12 : {
: : 13 : for ( col = column ; col > 0 ; col --)
: : 14 : printf("X");
: : 15 : printf("\n");
: : 16 : }
: 위의 문장에서 row와 col의 비교 구문에서 0보다 크다는 생략도 가능합니다. 조건이 참인 경우를 따지는 것과 동일하기 때문에 아래와 같이...
: for(; row; row--)
: {
: for(col=column; col; col--) printf("X");
: printf("\n");
: }
: 동일한 결과를 가집니다.
:
: : 질문 2. 13번행에서 col은 column의 초기값 35를 할당받게 될텐데 그럼 35에서 1이 될때까지
: : for문이 실행될것이고 그 결과로 34, 33, 32 ...... 3, 2, 1 순서로 'X'가 그려져야 하는게 아닐런지요?
:
: 화면에 X 문자가 35번 찍히게 되겠지요 35, 34, .... 1이 되는 동안...
:
: : 질문3. 결국 직각삼각형의 형태로 우측이 점차 줄어드는 형태의 삼각형이 그려져야 하는게 아닐까해서요.
: : 삼각형이 그려져야 하는데 그렇지 않은 이유는 'row' 의 값이 한 행으로만 한정되어졌기때문에
: : 한줄씩만 나타나는 건가요?
: : (row 에 8이 할당되었을때 col 초기값은 35, row 에 7이 할당되었을때도 col 초기값은 35...
: : 이런원리때문에 삼각형이 아닌 8행 35열의 'X'자로 구성된 사각형 박스가 그려지는건가요?)
: 왜 우측이 줄어들까요? row만큼 수직방향으로 column만큼 수평방향으로 반복되는데,
: ()안에 적으신 내용처럼 row가 변한다고 해도 col의 초기값은 항상 column이기 때문에 회수가 바뀌지는 않는거죠.
: 삼각형이 되려면, col의 초기값인 column이 하나씩 감소해주면서 초기화 되어야 하겠죠?
: 삼각형을 만드시려면 for(col=column--; col; col--)로 바꾸시면 되겠죠??
*********************************************************************************
*********************************************************************************
가장 이해가 되지 않았던 부분이 col 초기값(즉 column값)이 35일때 'x'가 35개 찍히는걸로 생각하고 있었는데..
외랑님의 답글을 보면 'x'가 35개 찍히는것이 아니라, 35의 위치에 하나의 'x'가 찍히는것이라는 뜻이죠?
그렇다면 이해가 되는군요. 초기값에 따라 1~35개의 위치에 모든 'x'가 찍힌다고 생각했으니..ㅠ.ㅠ
정말 감사합니다. 덕분에 궁금증이 풀리면서 연결되었던 'while'문에서의 궁금증도 해결되었습니다.
열심히 노력하겠습니다. 감사합니다. 건강하세요~!
|