问一个程序题,急急急!!

来源:百度知道 编辑:UC知道 时间:2024/07/05 03:11:49
两个有序表A=(a1,a2,...,an)和B=(b1,b2,...,bn)用顺序法存储在数组a[n]和b[m]中,将表A和B合并成一个有序表C=(C1,C2,...,Cm+n),表C顺序存储在数组C[m+n]中。(允许有重复元素)用C语言。
其实我很苯,能不能写得完整一点??求求你了!

c++程序如下:
#include"iostream"
using namespace std;
int *add(int a[], int n, int b[], int m, int c[])
{
int i = 0;
int j = 0;
int k = 0;

while(k < n + m)
{
if (i >= n)
{
c[k++] = b[j++];
}
else if (j >= m)
{
c[k++] = a[i++];
}
else if (a[i] < b[j])
{
c[k++] = a[i++];
}
else
{
c[k++] = b[j++];
}
}
return c;
}
int main()
{
int a[3]={1,2,3},b[4]=[1,2,3,4],c[7];
c=add(a,3,b,4,c);
for(i=0;i<=6;i++)
cout<<c[i]<<endl;
return 0;
}
不明白,可以再问

下面的函数可以完成合并两个顺序数组的功能,自己写一个主函数调用它吧,呵呵。

void unite(int a[], int n, int b[], int m, int c[])
{
int i = 0;
int j = 0;
int k = 0;

while(k < n + m)
{
if (i >= n)
{
c[k++] = b[j++];
}
else if (j >= m)
{