Page 36 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 36

do {                               do {
                       /* no는 2자리가 아닙니다. */               /* no는 2자리입니다. */
                    } while(no < 10 || no > 99);       } while(!(no >= 10 && no <= 99);

                         1                                   2
                                                 같습니다 .
                              명령문                                명령문

                                      Yes                                Yes
                             계속 조건                              ! 종료 조건
                                No                                  No


                                       [그림 1C-7] 반복의 연속 조건과 종료 조건








                   다중 루프
                   지금까지 다룬 프로그램은 단순한 반복을 수행했습니다. 그런데 반복 안에서 다시 반복할 수
                   있습니다. 이런 반복을 루프가 중첩되는 수준에 따라 ‘이중 루프, 삼중 루프’라고 합니다.



                   곱셈표
                   이중 루프를 사용하는 알고리즘의 예로 곱셈표를 출력하는 프로그램을 실습 1-7에 나타내었
                   습니다.


                      실습 1-7                                             •완성 파일 chap01/multi99table.c

                     01  /* 곱셈표를 출력합니다. */
                                                                                실행 결과
                     02  #include <stdio.h>
                                                                               ----- 곱셈표 -----
                     03                                                   1 12 13 14 15 16 17 18 19
                     04  int main(void)                                   2 14 16 18 10 12 14 16 18
                     05  {                                                3 16 19 12 15 18 21 24 27
                     06     int i, j;                                     4 18 12 16 20 24 28 32 36
                     07     printf("----- 곱셈표 -----\n");                  5 10 15 20 25 30 35 40 45
                            for(i = 1; i <= 9; i++) {
                     08     for(i = 1; i <= 9; i++) {                     6 12 18 24 30 36 42 48 54
                                                                          7 14 21 28 35 42 49 56 63
                     09       for(j = 1; j <= 9; j++)
                              for(j = 1; j <= 9; j++)
                              for(j = 1; j <= 9; j++)
                     10         printf ( "% 3d", i * j);                  8 16 24 32 40 48 56 64 72
                                 printf ( "% 3d", i * j);
                                  printf ( "% 3d", i * j);
                                                                          9 18 27 36 45 54 63 72 81
                              putchar('\n');
                     11       putchar('\n');
                              putchar('\n');
                     12     } }
                     13
                     14     return 0;
                     15  }
                   36   C 알고리즘
   31   32   33   34   35   36   37   38   39   40   41