解答如下
#include<stdio.h>
int main()
{
int x[]= {0,1,3,8,8,25,30,36,40,50};
int y[]= {-5,-1,2,5,25,32,35,38};
int len1,len2,i,j,k,tem;
len1=sizeof(x)/sizeof(int);
len2=sizeof(y)/sizeof(int);
int merge[len1+len2],h=0,l=0,r=0;
for(j=0; j<len1+len2; j++)
{
if(l==len1)
{
merge[h++]=y[r++];
continue;
}
if(r==len2)
{
merge[h++]=x[l++];
continue;
}
if(x[l]<y[r])
merge[h++]=x[l++];
else
merge[h++]=y[r++];
}
for(j=0; j<len1+len2; j++)
printf("%d ",merge[j]);
return 0;
}
你这个数组x已经越界访问了,后面那些都是脏数据