//设有两个整数类型的顺序表A(m个元素)和B(n个元素),其元素均以从小到大排列。
//将这两个顺序表合并成一个顺序表,要求C的元素也要从小到大升序排列
#include
<iostream.h>
#include
<stdlib.h>
const int sizeA=100;
const int sizeB=100;
class combination
{
public:
    combination(
int m=0,int n=0){}
    ~combination(){}
    void inputA();
    void inputB();
    void 
function();
private:
    
int A[sizeA];
    
int B[sizeB];
    
int C[sizeA+sizeB];
    
int m;
    
int n;
};

void combination::inputA()
{
    cout
<<"请输入顺序表A中元素的个数:";
    cin
>>m;
    
if(m>sizeA)
    {
        cerr
<<"表溢出!"<<endl;
        
exit(1);
    }
    
for(int i=0;i<m;i++)
    {
        cout
<<""<<i+1<<"个元素为:";
        cin
>>A[i];
    }
}

void combination::inputB()
{
    cout
<<"请输入顺序表B中元素的个数:";
    cin
>>n;
    
if(n>sizeB)
    {
        cerr
<<"表溢出!"<<endl;
        
exit(1);
    }
    
for(int i=0;i<n;i++)
    {
        cout
<<""<<i+1<<"个元素为:";
        cin
>>B[i];
    }
}

void combination::
function()
{
    
for(int i=0,j=0,k=0;i<m&&j<n;)
    {
        
if(A[i]>=B[j]) C[k++]=B[j++];
        
else C[k++]=A[i++];
    }

    
if(i==m) 
        
for(;j<n;j++) C[k++]=B[j];
    
else
        
for(;i<m;i++) C[k++]=A[i];
    
    cout
<<"合并后的数组为:";
    
for(k=0;k<=m+n-1;k++)
        cout
<<C[k]<<" ";

}

void main()
{
    combination obj;
    obj.inputA();
    obj.inputB();
    obj.function();

}