1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | /* 2015.09.01 내용: 이미 오름차순으로 정렬되어 있는 두 배열 a,b의 병합 결과를 출력하는 프로그램을 작성하시오. int a[] = {1, 2, 4, 7, 9, 14}; int b[] = {2, 3, 6, 8, 13}; int c[] = {1, 2, 2, 3, 5, 6, 7, 8, 9, 13, 14}; => void arraymerge(int *a, int an, int *b, int bn, int *c) : an과 bn은 각각 배열의 크기 */ #include <stdio.h> void arraymerge(int *a, int an, int* b, int bn, int *c) { int i = 0, j = 0, k = 0; while (an < bn ? i < an : j < bn) { if (a[i] < b[j]) { c[k] = a[i]; i++; k++; } else { c[k] = b[j]; j++; k++; } } if (an > bn) { for (i; i < an; i++, k++) { c[k] = a[i]; } } else { for (j; j < bn; j++, k++) { c[k] = b[j]; } } for (k = 0; k < an + bn; k++) { printf("%d ", c[k]); } } int main() { int a[] = { 1, 2, 5, 7, 9, 14 }; int b[] = { 2, 3, 6, 8, 13 }; int c[(sizeof(a)/sizeof(int)) + (sizeof(b)/sizeof(int))]; arraymerge(a, sizeof(a) / sizeof(int), b, sizeof(b) / sizeof(int), c); return 0; } | cs |
'미래(2015-2016) > 자습' 카테고리의 다른 글
계산기 (0) | 2015.09.03 |
---|---|
자판기 (0) | 2015.09.03 |
포인터를 이용한 배열복사 (0) | 2015.09.01 |
정수 두 개와 연산자 받아 계산하기 (0) | 2015.08.28 |
벌점 계산하기 (0) | 2015.08.28 |