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

maxof 함수를 호출하면 전달된 포인터 height(&height[0])에서 매개변수 a가 초기화되기 때문에 포
                   인터 a는 height[0]의 주소를 가리키게 됩니다.

                   이때 전달받은 인수(height)는 단순히 포인터이지 배열이 아니므로 배열의 요소 개수는 새로운 인수로
                   전달받아야 합니다(호출하는 함수는 배열의 요소 개수를 알 수 없습니다). 이 인수가 n입니다.






                   난수 사용해 배열의 요솟값 설정하기
                   배열의 요소에 값을 하나씩 입력하는 것이 귀찮을 경우 각 요소에 난수를 대입하면 됩니다.

                      실습 2-6                                            •완성 파일 chap02/ary_max_rand.c

                     01  /* 배열 요소의 최댓값을 구합니다(값을 난수로 생성). */
                                                                                실행 결과
                     02  #include <time.h>
                                                                          사람 수 : 5
                     03  #include <stdio.h>    1                          height[0] = 172
                     04  #include <stdlib.h>                              height[1] = 137
                     05                                                   height[2] = 168
                     06  /*--- 요소 개수가 n인 배열 a의 요소의 최댓값을 구합니다. ---*/       height[3] = 189
                                                                          height[4] = 113
                     07  int maxof(const int a[], int n)
                                                                          최댓값은 189입니다.
                     08  {
                     09     int i;
                     10     int max = a[0];     /* 최댓값 */
                     11     for(i = 1; i < n; i++)
                     12       if(a[i] > max) max = a[i];
                     13     return max;
                     14  }
                     15
                     16  int main(void)
                     17  {
                     18     int i;
                     19     int *height;                        /* 배열의 첫 번째 요소의 포인터 */
                     20     int number;                        /* 사람 수 = 배열   height의 요소 개수 */
                     21     printf("사람 수 : ");
                     22     scanf("%d", &number);
                     23     height = calloc(number, sizeof(int));   /* 요소 개수가 number인 배열을 생성 */
                     24     srand(time(NULL));                   /* 시간으로 난수의 seed(씨앗)를 초기화 */
                                              2
                     25     for(i = 0; i < number; i++) {
                                                       3
                     26       height[i] = 100 + rand() % 90;        /* 100 ~ 189의 난수를 생성 · 대입 */
                     27       printf("height[%d] = %d\n", i, height[i]);
                     28     }





                   60   C 알고리즘
   55   56   57   58   59   60   61   62   63   64   65