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

월-1의 값을 인덱스로 합니다.
                                0   1   2   3    4   5    6   7    8   9    10   11
                        평년  0    31   28   31   30   31   30   31   31   30   31   30   31
                        윤년  1    31   29   31   30   31   30   31   31   30   31   30   31
                                        [그림 2-19] 각 달의 날 수를 저장한 2차원 배열


                        실습 2-12의 dayofyear 함수는 각 달의 날 수를 저장하는 2차원 배열 mdays를 사용하여 2

                        월을 특별히 다루지 않고 날 수를 계산합니다. 그림 2-19에서 볼 수 있듯이 배열 mdays의 구
                        성 요소에는 아래의 값이 들어갑니다.



                        인덱스가 0인 행의 구성 요소 mdays[0][0], mdays[0][1], …, mdays[0][11]


                         평년 1월, 2월, …, 12월의 날 수



                        인덱스가 1인 행의 구성 요소 mdays[1][0], mdays[1][1], …, mdays[1][11]


                         윤년 1월, 2월, …, 12월의 날 수



                        isleap 함수는 매개변수 year로 받은 연도가 윤년이면 1을, 평년이면 0을 반환하는 함수입니
                        다. 그러므로 y년 i달의 날 수는 mdays[isleap(y)][i – 1]로 구할 수 있습니다.



                                 Q11   dayofyear 함수를 변수 i와 days를 사용하지 않고 구현해 보세요. 또한 for문이 아닌
                         연습
                         문제     while문을 사용하세요.





                            보충수업 2-8   다차원 배열의 초기화

                        다차원 배열의 초기화는 { }를 겹치는 방식으로 합니다. 예를 들어, 2행 3열의 2차원 배열 ma의 각 구
                        성 요소를 앞쪽부터 차례대로(1, 2, 3, 4, 5, 6) 초기화하려면

                                                                                  같은 초기화 방식입니다.
                         int ma[2][3] = {{1, 2, 3}, {4, 5, 6}};



                        이라고 선언합니다. 초기화의 개수로 요소 개수를 알 수 있는 경우에는 맨 앞쪽 요소 개수를 생략할
                        수 있습니다. 예를 들어, 2를 생략하고 아래처럼 선언할 수 있습니다.




                                                                                      02• 기본 자료구조  87
   82   83   84   85   86   87   88   89   90   91   92