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

실습 1-6                                             •완성 파일 chap01/sum_for_pos.c
                     01  /* 1, 2, …, n의 합을 구합니다(do문에서 양의 정수만을   n 값으로 입력합니다). */
                     02  #include <stdio.h>                                     실행 결과
                     03
                                                                          1부터 n까지의 합을 구합니다.
                     04  int main(void)                                   n 값 : -6
                     05  {                                                n 값 : 0
                     06     int i, n;                                     n 값 : 10
                     07     int sum;                               /* 합 */  1부터 10까지의 합은 55입니다.
                     08     puts("1부터 n까지의 합을 구합니다.");
                     09     do {
                     10       printf("n 값 : ");
                                               n이 0보다 클 때까지 반복합니다.
                     11       scanf("%d", &n);
                     12     } while(n <= 0);
                     13     sum = 0;
                     14     for(i = 1; i <= n; i ++) {                /* i = 1, 2, …, n */
                     15       sum += i;                             /* sum에 i를 추가 */
                     16     }
                     17     printf("1부터 %d까지의 합은 %d입니다.\n", n, sum);
                     18
                     19     return 0;
                     20  }



                   프로그램을 실행하고 n 값으로 0 이하의 값을 입력하면 다시 ‘n 값 : ’이라고 출력되며 사용자

                   에게 다시 입력할 것을 요구합니다. 실습 1-6은 양수만 입력받기 위해 do문으로 프로그램을
                   작성했습니다.


                     do문 while(제어식);

                      while문이나 for문과 달리 이 구문의 끝에는 세미콜론 ;이 붙습니다.


                   do문은 일단 루프 본문을 한 번 실행한 다음에 계속 반복할 것인지를 판단하는 사후 판단 반

                   복문입니다. while문과 마찬가지로 ( ) 안의 제어식을 평가한 값이 0이 아니면 루프 본문의 명
                   령문이 반복됩니다. 다음 그림 1-14는 위 프로그램에서 초록색 박스로 표시한 부분을 순서도
                   로 나타낸 것입니다.











                   32   C 알고리즘
   27   28   29   30   31   32   33   34   35   36   37