应用题   使用VC++6.0打开下的源程序文件2.cpp。完成fun函数,使其功能为将两个按小到大排序的数组a和b,复制合并成一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。
    注意:不能修改程序的其他部分,只能修改fun函数。
    试题程序:
    #include<iostream.h>
    void fun(int a[], int n, int b[], int m, int*c)
    {
   
    }
    void main()
    {
    int A[]={3, 5, 7, 9, 11, 18, 21};
    int B[]={6, 15, 19, 21, 39);
    int C[25], i;
    for(i=0; i<25; i++)C[i]=0;
    cout<<'A[]=';
    for(i=0; i<7; i++)
    cout<<A[i]<<',';
    cout<<endl;
    cout<<'B[]=';
    for(i=0; i<5; i++)
    cout<<B[i]<<',';
    cout<<endl;
    fun(A, 7, B, 5, C);
    cout<<'C[]=';
    for(i=0; i<12; i++)
    cout<<C[i]<<',';
    cout<<endl;
    return;
    }
 
【正确答案】答案考生文件夹 int i, j; for(i=j=0; i<n&&j<m;) { *c++=a[i]<b[j]?a[i++]:b[j++]; //比较两个数组中元素大小 } while(i<n)*c++=a[i++]; while(j<m)*c++=b[j++];
【答案解析】本题都指向数组的第一个元素。利用for循环对要合并的两个数组中的元素进行比较,直到两个数组结束。取比较结果小的元素,并将指向这个数组的位置向后移动一位。