这样可以么,不知道有没有考虑的不周全的地方。
大家继续修改指正。
int const_a[]={6,7,8,9,10,11,12,13,14};
int const_b[]={1,8,10,14,15,16,17,18,19,20};
int result[19]={0};
//
int *p_a=const_a;
int *p_b=const_b;
int count_result=0;
void main()
{
//printf("%d\n",sizeof(const_a)/sizeof(int));
int length_a=(sizeof(const_a)/sizeof(int));
//计算啊数组的长度
int length_b=(sizeof(const_b)/sizeof(int));
int lenght=length_a+length_b;
//查询长度
int i=0;
int count_a=0;
int count_b=0;
int tmp=0;
int j=0;
for(i=0;i<lenght;i++)
{
if(count_a>=length_a)
//a 数组到达制定长度
{
for(j=count_b;j<length_b;j++)
{
result[count_result]=*(p_b+j);
count_result++;
//新数组中加入数组索引递增
}
break;
}
else if(count_b>=length_b)
//b 数组到达制定长度
{
for(j=count_a;j<length_a;j++)
{
result[count_result]=*(p_a+j);
count_result++;
//新数组中加入数组索引递增
}
break;
}
else if(*(p_a+count_a)<*(p_b+count_b))
//比较数值大小
{
result[count_result]=*(p_a+count_a);
count_a++;
//a数组中的值被移走,数组递增
count_result++;
//新数组中加入数组索引递增
continue;
}
else
{
result[count_result]=*(p_b+count_b);
count_result++;
//新数组中加入数组索引递增
count_b++;
//跟下一个B中的数组进行比较
continue;
}
}
//打印输出结果
for(j=0;j<lenght;j++)
{
printf("%d\n",result[j]);
}
}