我是一名编程学生,我不明白这段代码有什么问题:
#include <stdio.h>
#include <stdlib.h>
void merge(int a[], int low, int high, int mid){
int i, j, k, c[50];
i=low;
j=mid+1;
k=low;
while((i<=mid)&&(j<=high)){
if(a[i]<a[j]){
c[k]=a[i];
k++;
i++;
} //end if
else{
c[k]=a[j];
k++;
j++;
} //end else
} //end while
while(i<=mid){
c[k]=a[i];
k++;
i++;
} //end while
while(j<=high){
c[k]=a[j];
k++;
j++;
} //end while
for(i=low;i<k;i++){
a[i]=c[i];
} //end for
} //end merge()
int mergesort(int a[], int low, int high){
int mid;
if(low<high){
mid=(low+high)/2;
mergesort(a,low,mid);
mergesort(a,mid+1,high);
merge(a,low,high,mid);
} //end if
return(0); …Run Code Online (Sandbox Code Playgroud)