안녕하세요. 저는 Turbo C 3.0 사용자입니다.
아직 C에 대한 지식이 턱없이 부족한지라 열심히 공부하는 도중 이해가 가지 않는 부분이 있어서요.
각설하고,
1 : #include <stdio.h>
2 : void draw_box(int, int);
3 : main()
4 : {
5 : draw_box(8, 35);
6 : return 0;
7 : }
8 : void draw_box(int row, int column)
9 : {
10 : int col;
11 : for ( ; row >0 ; row --)
12 : {
13 : for ( col = column ; col > 0 ; col --)
14 : printf("X");
15 : printf("\n");
16 : }
17 : }
위 소스코드에 대한 출력은
가로 35 세로 8에 해당하는 상자크기가 'X'로 구성되어 나타납니다.
그런데 이해가 되지 않는 부분은 바로 11번에서 16번행 까지입니다.
질문 1. 11번행에서 row의 초기값은 8에 해당하는건지요?
질문 2. 13번행에서 col은 column의 초기값 35를 할당받게 될텐데 그럼 35에서 1이 될때까지
for문이 실행될것이고 그 결과로 34, 33, 32 ...... 3, 2, 1 순서로 'X'가 그려져야 하는게 아닐런지요?
질문3. 결국 직각삼각형의 형태로 우측이 점차 줄어드는 형태의 삼각형이 그려져야 하는게 아닐까해서요.
삼각형이 그려져야 하는데 그렇지 않은 이유는 'row' 의 값이 한 행으로만 한정되어졌기때문에
한줄씩만 나타나는 건가요?
(row 에 8이 할당되었을때 col 초기값은 35, row 에 7이 할당되었을때도 col 초기값은 35...
이런원리때문에 삼각형이 아닌 8행 35열의 'X'자로 구성된 사각형 박스가 그려지는건가요?)
알듯 모를듯...헷갈리네요. 제 궁금증을 해결해주세요~~!
그럼 모두들 오늘도 즐거운 하루 되셨길 바랍니다.
|