function函数逻辑错误,q的值一直没有改变过,代码修改如下:
int function(int arr1[],int n1,int arr2[],int n2)
{
int p=1;
int q=1;
int k =1,t;
arr2[0] = arr1[0];
while(p<n1)
{
if(arr1[p] >= arr2[q-2]) //这里是>=
arr2[q] = arr1[p];
else
{
for (k=0;k<q;k++)//找到arr2插入的位置
{
if(arr2[k]>arr1[p])
break;
}
//k及其后面的元素后移
for (t=q;t>k;t--)
arr2[t] = arr2[t-1];
//把arr1[p]插入arr2[k]
arr2[k]=arr1[p];
}
p++;
q++;
}
return 0;
}