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

27       dist[i] = 0;
                     28     for(i = 0; i < n; i++)
                     29       if(dat[i].vision >= 0.0 && dat[i].vision <= VMAX/10.0)
                     30         dist[(int)(dat[i].vision * 10)]++;              실행 결과
                     31  }                                                ■ □ ■  신체검사 표  ■ □ ■
                     32                                                   이름        키    시력
                                                                          박현규      162    0.3
                     33  int main (void)
                                                                          함진아      173    0.7
                     34  {                                                최윤미      175    2.0
                     35     int i;                                        홍연의      171    1.5
                                                                          이수진      168    0.4
                     36     PhysCheck x[] = {
                                                                          김영준      174    1.2
                     37       { "박현규", 162, 0.3 },                        박용규      169    0.8
                     38       { "함진아", 173, 0.7 },                        평균 키 : 170.3 cm
                                                                          시력 분포
                     39       { "최윤미", 175, 2.0 },
                                                                          0.0 ~ : 0 명
                     40       { "홍연의", 171, 1.5 },                        0.1 ~ : 0 명
                     41       { "이수진", 168, 0.4 },                        0.2 ~ : 0 명
                                                                          0.3 ~ : 1 명
                     42       { "김영준", 174, 1.2 },
                                                                          0.4 ~ : 1 명
                     43       { "박용규", 169, 0.8 }                         0.5 ~ : 0 명
                     44     };                                            … 이하 생략 …
                     45     int nx = sizeof(x) / sizeof(x[0]);       /* 사람 수 */
                     46     int vdist[VMAX];                      /* 시력 분포 */
                     47     puts("■ □ ■  신체검사표  ■ □ ■");
                     48     puts("    이름            키   시력  ");
                     49     puts("----------------------------");
                     50     for(i = 0; i < nx; i++)
                     51       printf("%-18.18s%4d%5.1f\n", x[i].name, x[i].height, x[i].vision);
                     52     printf("\n 평균 키 : %5.1f cm\n", ave_height(x, nx));
                     53     dist_vision(x, nx, vdist);               /* 시력 분포를 구합니다. */
                     54     printf("\n 시력 분포\n");
                     55     for(i = 0; i < VMAX; i++)
                     56       printf("%3.1f ~ : %2d명\n", i/10.0, vdist[i]);
                     57
                     58     return 0;
                     59  }




                   앞 절에서는 배열에 대해 기본적인 자료형(char, int, float …) 정도만 배웠습니다. C 언어에서
                   는 배열의 구성 요소로 이런 기본적인 자료형뿐 아니라 열거형, 구조체 등도 허용합니다. 실
                   습 2-13의 프로그램에서 선언하고 정의한 구조체의 이름은 PhysCheck입니다. 이 구조체는

                   이름(문자열), 키(int형), 시력(double형)을 가지고 있습니다.





                   92   C 알고리즘
   87   88   89   90   91   92   93   94   95   96   97