//設(shè)有兩個整數(shù)類型的順序表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中元素的個數(shù):";
    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中元素的個數(shù):";
    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
<<"合并后的數(shù)組為:";
    
for(k=0;k<=m+n-1;k++)
        cout
<<C[k]<<" ";

}

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

}