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

29     printf("최댓값은 %d입니다.\n", maxof(height, number));
                         30     free(height);   /* 배열 height를 해제 */
                         31
                         32     return 0;
                         33  }

                           실행 결과로 보이는 값은 하나의 예이며, 실행할 때마다 다른 값이 생성됩니다.


                        이제 프로그램을 실행해 보겠습니다. 사람 수를 입력하면 곧바로 그 사람 수만큼 키의 값이

                        자동으로 생성되고 최댓값이 출력됩니다(키의 값을 일일이 입력하는 수고를 덜어줍니다).


                        아래는 난수의 생성 단계를 요약한 것입니다.



                          1  rand 함수, srand 함수, time 함수의 선언이 들어 있는 헤더를 포함시킵니다.
                          2  난수의 seed(씨앗)를 초기화하기 위해 srand 함수를 호출합니다.
                          3  난수를 생성하기 위해 rand 함수를 호출합니다.



                        보통은 한 번만  2 를 실행하고 난수가 필요할 때마다  3 을 실행합니다.

                           생성한 난수를 90으로 나눈 나머지(0 ~ 89)에 100을 더하므로 height[i]에 대입하는 키의 값은 100 ~ 189입니다.



                            보충수업 2-4   난수의 생성

                        난수를 생성하는 rand 함수가 반환하는 값은 0 이상 RAND_MAX 이하의 값입니다. 이때 <stdlib.h>
                        헤더에 정의된 RAND_MAX 값은 컴퓨터 환경에 따라 다릅니다(최소 32,767입니다).


                        다음은 2개의 난수를 생성하는 프로그램의 일부입니다


                         #include <stdio.h>
                         #include <stdlib.h>
                         /* … 중략 … */
                         x = rand();     /* 0 이상 RAND_MAX 이하의 난수를 생성 */
                         y = rand();     /* 0 이상 RAND_MAX 이하의 난수를 생성 */
                         printf("x 값은 %d이고 y 값은 %d입니다.\n", x, y);



                        이 프로그램을 실행하면 x와 y는 서로 다른 값이 출력됩니다. 그런데 이 프로그램은 몇 번을 다시 실행
                        해도 x 값과 y 값이 항상 같습니다.



                                                                                      02• 기본 자료구조  61
   56   57   58   59   60   61   62   63   64   65   66