네이버 문제
// >>>>>>>>>>>>>>>>>>
# include <stdio.h>
# include <stdlib.h>
# include <stdbool.h>
# include <time.h>
# define ARRY_LENGTH 10
// >>>>>>>>>>>>>>>>>>
typedef struct _Bubble_arry {
int Arry[5];
int Brry[5];
int Total_arry[10];
}_Bubble_arry, *ptr_arry;
// [ function prototype ]______________________________
void _init_(_Bubble_arry* param_arry);
void _small_split_large(_Bubble_arry* param_arry);
void _do_bubble_sort(_Bubble_arry* param_arry);
void _test_printf(_Bubble_arry* param_arry);
void _coalescence(_Bubble_arry* param_arry);
// ____________________________________________________
int main(void) {
_Bubble_arry mY_ = { 0, }; //
_init_(&mY_);
_small_split_large(&mY_);
_do_bubble_sort(&mY_);
_test_printf(&mY_);
_coalescence(&mY_);
return 0;
} // end of main function
void _init_(_Bubble_arry* param_arry) {
srand((unsigned)time(NULL));
int i; // index
for (i = 0; i < 5; i++) {
(param_arry)->Arry[i] = rand() % 40 + 1;
(param_arry)->Brry[i] = rand() % 40 + 1;
}
printf("Array => ");
for (i = 0; i < 5; i++) {
printf("%d ", (param_arry)->Arry[i]);
} printf("\n");
printf("Brray => ");
for (i = 0; i < 5; i++) {
printf("%d ", (param_arry)->Brry[i]);
} printf("\n");
printf("=================================================\n");
} // end of _init_ function
void _small_split_large(_Bubble_arry* param_arry) {
int i, j; // index
int temp_value = 0;
bool result = false;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
if ((param_arry)->Arry[i] > (param_arry)->Brry[j]) {
temp_value = (param_arry)->Arry[i];
(param_arry)->Arry[i] = (param_arry)->Brry[j];
(param_arry)->Brry[j] = temp_value;
}
}
}
} // end of _small_split_large function
void _do_bubble_sort(_Bubble_arry* param_arry) {
// A ... bubble sorting
int i, j; // index
int temp = 0;
for (i = 0; i < 4; i++) {
// 0, 1, 2, 3, 4
for (j = 0; j < 4; j++) {
// swap
// Array_________________________________________________
if ((param_arry)->Arry[j] > (param_arry)->Arry[j+1]) {
temp = (param_arry)->Arry[j];
(param_arry)->Arry[j] = (param_arry)->Arry[j + 1];
(param_arry)->Arry[j + 1] = temp;
}
// Brray_________________________________________________
if ((param_arry)->Brry[j] >(param_arry)->Brry[j + 1]) {
temp = (param_arry)->Brry[j];
(param_arry)->Brry[j] = (param_arry)->Brry[j + 1];
(param_arry)->Brry[j + 1] = temp;
}
}
}
} // end of _do_bubble_sort function
void _test_printf(_Bubble_arry* param_arry) {
printf("Array => ");
int i; // index
for (i = 0; i < 5; i++) {
printf("%d ", (param_arry)->Arry[i]);
} printf("\n");
printf("Brray => ");
for (i = 0; i < 5; i++) {
printf("%d ", (param_arry)->Brry[i]);
} printf("\n");
} // end of _test_printf function
void _coalescence(_Bubble_arry* param_arry) {
int i, j, k;
int indx = 0;
for (j = 0; j < 2; j++){
for (i = 0; i < 5; i++) {
if (j % 2 == 0){
param_arry->Total_arry[indx++] = param_arry->Arry[i];
}
else {
param_arry->Total_arry[indx++] = param_arry->Brry[i];
}
}
}
// test
printf("Result => [A + B] : ");
for (k = 0; k < ARRY_LENGTH; k++) {
printf("%d ", (param_arry)->Total_arry[k]);
} printf("\n");
}