#include <stdio.h>

#define I 6


 


int copy[I];


void merge(int nums[],int n,int k,int max){

  

int i = n;

int j=k+1;    

int m = 0;

while(i<=k && j<=max){  

if(nums[i]<=nums[j]){

copy[m]=nums[i];     

m++;

i++;

     

    

}

else{

copy[m]=nums[j];

j++;

m++;

}


while(i<=k){   

copy[m]=nums[i];

i++;

     m++;

}

while(j<=max){  

copy[m]=nums[j]; 

j++;          

m++;

}

m--;

while(m>=0){

nums[m]=copy[m];

m--;

}

}



void mergesort(int nums[],int n,int max){




if (n<max){

int k=(n+max)/2;                      


 

mergesort(nums,n,k);

   

    mergesort(nums,k+1,max);

  

    merge(nums,n,k,max);

    

}

else{

return;

}


}




int main (void){

   

int nums[I]={5,3,7,2,9,1};


mergesort(nums,0,I-1);

for(int t=0;t<I;t++){

printf("%d",nums[t]);

}

}




뭐가 문제일까요? ㅠㅠ 알려주십시오


예측할 수 없는 결과가 나오네요. 어이없는 실수한 거 같은데 모르겠습니다