构造一一个函数,把两个升序数组合并成一一个升序数组,主程序完成数据的输入和?

如题所述

以C语言为例,可以这样实现
这个是合并函数
void arrayMerge(int*p1,int len1,int* p2,int len2,int* p3)
{
int i, j, k;
i = j = k=0;
while (i<len1&&j<len2)
{
if (p1[i] < p2[j])
{
p3[k++] = p1[i++];
}
else
{
p3[k++] = p2[j++];
}
}
while (i < len1)
{
p3[k++] = p1[i++];
}
while (j > len2)
{
p3[k++] = p2[j++];
}
}
这个是Main函数
void main()
{
int a[] = {1,3,4,6,9};
int b[] = {1,2,3,4,5,6,7,8,9};
int c[100];
int len1 = sizeof(a) / sizeof(a[0]);
int len2 = sizeof(b) / sizeof(b[0]);
int len3 = len1 + len2;

arrayMerge(a, len1, b, len2, c);
for (int i = 0; i < len3; ++i)
{
printf("%d,", c[i]);
}
}
温馨提示:答案为网友推荐,仅供参考