void merge(int *A, int *B, int *C, int size);
void main()
{
int i = 0;
int a[5] = { 0 };
int b[5] = { 0 };
int c[10] = { 0 };
srand(time(0));
for (i = 0; i < 5; i++)
{
a[i] = rand() % 20;
b[i] = rand() % 20;
}
merge(a, b, c, 5);
printf("배열 c는 ");
for (i = 0; i < 10; i++)
printf("%d ,", c[i]);
printf("\n");
}
void merge(int *A, int *B, int *C, int size)
{
int temp = 0;
int i = 0;
int j = 0,l;
int *p_a = A;
int *p_b = B;
for (i = 0; i < size - 1; i++){
for (j = i + 1; j < size; j++)
{
if (A[i] > A[j])
{
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
for (i = 0; i < size - 1; i++){
for (j = i + 1; j < size; j++){
if (B[i] > B[j])
{
temp = B[i];
B[i] = B[j];
B[j] = temp;
}
}
}
printf("a의 배열은 ");
for (i = 0; i < 5; i++)
printf("%d ,", A[i]);
printf("\n");
printf("b의 배열은 ");
for (i = 0; i < 5; i++)
printf("%d ,", B[i]);
printf("\n");
int k = 0;
for (i = 0,j=0; (i<5&&j<5);k++ )
{
if (*(p_a+i) > *(p_b+j))
{
C[k] = *(p_b + j);
j++;
}
else
{
C[k] = *(p_a + i);
i++;
}
}
if (i > j){
for (i = j; i < 5; i++)
{
C[k] = B[i];
k++;
}
}
else
{
for (j= i; j < 5; j++)
{
C[k] = A[j];
k++;
}
}
}
'공부 > C' 카테고리의 다른 글
LED전광판 만들기 (1) | 2016.06.22 |
---|---|
(배열 + 이진 검색)이름,성적 입력 후 이름으로 찾기 (0) | 2016.06.08 |
선택정렬 (0) | 2016.06.08 |
10진수 2진수 변환 (0) | 2016.06.01 |
배열 사용 안하고 10진수 > 2진수 변환 C (0) | 2016.06.01 |