这是 合并排序的递归算法 代码运行时不报错 但好像是有死循环 求大手斧正 万分感谢呀,该如何解决

这是 合并排序的递归算法 代码运行时不报错 但好像是有死循环 求大手斧正 万分感谢呀
#include<stdio.h>
void main(){
void Merge(int B[],int C[],int A[],int m,int n);
  void MergeSort(int A[],int n);
  int A[10],i,j;
  printf("Insert 10 Number");
  for(i=0;i<10;i++)
  scanf("%d",A[i]);
  MergeSort(A,10);
  printf("Odder Array:");
  for(j=0;j<10;j++)
  printf("%d ",A[j]);
printf("\n");
}
void Merge(int B[],int C[],int A[],int m,int n){
  int i=0,j=0,k=0;
  while(i<m&&j<n){
  if(B[i]<C[j])
  A[k++]=B[i++];
  else
  A[k++]=C[j++];
  if(i==m)
  for(;j<n;j++)
  A[k++]=C[j];
  else
  for(;i<m;i++)
  A[k++]=B[i];
  }
}
void MergeSort(int A[],int n){
  int B[6],C[6],mid,i,j;
  if(n>1){
  mid=n/2;
  for(i=0;i<mid;i++)
  B[i]=A[i];
  for(i=0,j=mid;j<n;i++,j++)
  C[i]=A[j];
  MergeSort(B,mid);
  MergeSort(C,n-mid);
  Merge(B,C,A,mid,n-mid);
  }
}

------解决方案--------------------
void main(){
void Merge(int B[],int C[],int A[],int m,int n);
void MergeSort(int A[],int n);
int A[10],i,j;
printf("Insert 10 Number");
for(i=0;i<10;i++)
scanf("%d",&A[i]); //这句写错了
------解决方案--------------------
探讨

数组输入数值不用加取地址符吧,加&amp;运算结果就是就是地址了