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

실습 2-7은 이를 구현한 프로그램입니다.


                      실습 2-7                                                 •완성 파일 chap02/rev_ary.c

                     01  /* 배열 요소를 역순으로 정렬합니다. */
                     02  #include <stdio.h>
                     03  #include <stdlib.h>
                     04
                     05  /*--- type형 x와 y 값을 교환 ---*/
                     06  #define swap(type, x, y) do{ type t = x; x = y; y = t;} while(0)
                     07
                     08  /*--- 요소 개수가 n인 배열 a의 요소를 역순으로 정렬 ---*/
                                                                                실행 결과
                     09  void ary_reverse(int a[], int n)
                                                                          요소 개수 : 5
                     10  {
                                                                          5개의 정수를 입력하세요.
                     11     int i;                                        x[0] : 10
                     12     for(i = 0; i < n / 2; i++)                    x[1] : 73
                     13       swap(int, a[i], a[n - i - 1]);              x[2] : 2
                     14  }                                                x[3] : -5
                                                                          x[4] : 42
                     15
                                                                          배열의 요소를 역순으로 정렬
                     16  int main(void)
                                                                          했습니다.
                     17  {                                                x[0] = 42
                     18    int i;                                         x[1] = -5
                     19    int *x;                 /* 배열 첫 번째 요소의 포인터 */  x[2] = 2
                     20    int nx;                 /* 배열 x의 요소 개수 */      x[3] = 73
                                                                          x[4] = 10
                     21
                     22    printf("요소 개수 : ");
                     23    scanf("%d", &nx);
                     24    x = calloc(nx, sizeof(int));           /* 요소 개수가 nx인 int형 배열 x를 생성 */
                     25    printf("%d개의 정수를 입력하세요.\n", nx);
                     26    for(i = 0; i < nx; i++) {
                     27      printf("x[%d] : ", i);
                     28      scanf("%d", &x[i]);
                     29     }
                     30     ary_reverse(x, nx);       /* 배열 x의 요소를 역순으로 정렬 */
                     31    printf("배열의 요소를 역순으로 정렬했습니다.\n");
                     32    for(i = 0; i < nx; i++)
                     33      printf("x[%d] = %d\n", i, x[i]);
                     34    free(x);                /* 배열 x를 해제 */
                     35
                     36    return 0;
                     37  }





                   66   C 알고리즘
   61   62   63   64   65   66   67   68   69   70   71