언어/c언어

네이버 문제

파아랑새 2017. 11. 21. 13:24

// >>>>>>>>>>>>>>>>>>
# 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");
}