Algorithm/Do it

[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 2장 기본 자료구조 연습문제 Q9 답안 p.75

Bonita SY 2019. 10. 9. 23:02
728x90
반응형

Q9. 배열 b의 모든 요소를 배열 a에 역순으로 복사하는 함수를 작성하세요. (n은 요소 개수입니다.)

void ary_rcopy(int a[], const int b[], int n);


코드)

#include <stdio.h>
#include <stdlib.h>

void ary_rcopy(int a[], const int b[], int n) {
  int i=0; //index
  for(i; i<n; i++) {
    a[i] = b[n-1-i];
    printf("원본 배열[%d]의 값 %d이 복사 배열[%d]에 복사되었습니다.\n", n-1-i, b[n-1-i], i);
  }
};

int main(void) {
  int i; //index
  int ary_length;
  int *org_ary; //복사될 배열
  int *copy_ary; //복사한 배열

  printf("배열의 길이를 입력하세요. : ");
  scanf("%d", &ary_length);
  org_ary = calloc(ary_length, sizeof(int));
  copy_ary = calloc(ary_length, sizeof(int));

  puts("배월 원소를 입력하세요.");
  for(i=0; i<ary_length; i++) {
    printf("원본 배열[%d] : ", i);
    scanf("%d", &org_ary[i]);
  }

  ary_rcopy(copy_ary, org_ary, ary_length);

  for(i=0; i<ary_length; i++) {
    printf("복사 배열[%d] : %d\n", i, copy_ary[i]);
  }
}

실행결과)

sy@sy:~/algorithm/doit/chap02$ gcc q9.c -o q9
sy@sy:~/algorithm/doit/chap02$ ./q9
배열의 길이를 입력하세요. : 5
배월 원소를 입력하세요.
원본 배열[0] : 2
원본 배열[1] : 3
원본 배열[2] : 4
원본 배열[3] : 5
원본 배열[4] : 6
원본 배열[4]의 값 6이 복사 배열[0]에 복사되었습니다.
원본 배열[3]의 값 5이 복사 배열[1]에 복사되었습니다.
원본 배열[2]의 값 4이 복사 배열[2]에 복사되었습니다.
원본 배열[1]의 값 3이 복사 배열[3]에 복사되었습니다.
원본 배열[0]의 값 2이 복사 배열[4]에 복사되었습니다.
복사 배열[0] : 6
복사 배열[1] : 5
복사 배열[2] : 4
복사 배열[3] : 3
복사 배열[4] : 2
728x90
반응형