使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成fun()函数,其功能是:将两个从小到大有序数组a和b,复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。 注意:不能修改程序的其他部分,只能修改fun()函数。 #inc

admin2016-10-28  26

问题 使用VC6打开考生文件夹下的源程序文件modi2.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=0;
cout<<"A[]=";
for(i=0;i<7;i++)
cout<<A<<’,’;
cout<<endl;
cout<<"B[]=";
for(i=0;i<5;i++)
cout<<B<<’,’;
cout<<endl;
fun(A,7,B,5,C);
cout<<"C[]=";
for(i=0;i<12;i++)
cout<<C<<’,’;
cout<<endl;
returnj;
}

选项

答案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++];

解析 (1)首先都指向数组的第一个元素。
(2)然后利用for循环对要合并的两个数组中的元素进行比较,直到两个数组结束。
(3)取比较结果小的元素,并将指向这个数组的位置向后移动一位。
转载请注明原文地址:https://kaotiyun.com/show/XONp777K
0

最新回复(0)