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

07     char cno[512];      /* 변환한 값의 각 자리의 숫자를 저장하는 문자 배열 */
                     08     int retry;         /* 한 번 더? */
                     09     puts("10진수를 기수 변환합니다.");
                     10     do {
                     11       printf("변환하는 음이 아닌 정수 : ");
                     12       scanf("%u", &no);
                     13       do {
                     14         printf("어떤 진수로 변환할까요?(2-36) : ");
                     15         scanf("%d", &cd);
                     16       } while(cd < 2 || cd > 36);
                     17       dno = card_convr(no, cd, cno);     /* no를 cd진수로 변환 */
                     18       printf("%d진수로는", cd);
                     19       for(i = dno - 1; i >= 0; i--)       /* 윗자리부터 차례로 출력 */
                     20         printf("%c", cno[i]);
                     21       printf("입니다.\n");
                     22       printf("한 번 더 할까요?(1 … 예 / 0 … 아니오) : ");
                     23       scanf("%d", &retry);
                     24     } while(retry == 1);
                     25
                     26     return 0;
                     27  }



                   main 함수에서는 기수 변환을 대화식으로 합니다. card_convr 함수의 반환값을 대입하는

                   dno에는 변환한 후의 자릿수가 들어갑니다. 그리고 변환한 각 자리의 문자는 cno[0],
                   cno[1], …, cno[dno – 1]에 저장됩니다. 다만 card_convr 함수는 배열에 역순으로 저장됩
                   니다. 그러므로 변환 결과를 출력하는 부분(초록색 박스로 표시한 부분)은 배열 cno를 맨 끝부터

                   맨 앞까지 역순으로 출력합니다.


                             Q1   실습 2- 5는 키의 최댓값을 구하는 프로그램으로, 이 프로그램을 수정하여 키의 최솟값을
                    연습
                    문제      구하는 프로그램을 작성하세요.  최솟값을 구하는 과정은 아래와 같은 함수로 구현하세요.

                             int minof(const int a[], int n);



                             Q2   앞의 문제(실습 2-5)를 수정하여 키의 합계를 구하는 프로그램을 작성하세요. 합계를 구하
                            는 과정은 아래와 같은 함수로 구현하세요.


                             int sumof(const int a[], int n);




                   74   C 알고리즘
   69   70   71   72   73   74   75   76   77   78   79