#include
#define N 20
int main()
{
int a[N]={ 0 }, b[N]={ 0 };
int anum,bnum,c[N+N];
int *pi, *pj,*pk;
scanf("%d",&anum); //输入数组a元素个数
for(pi=a;pi {
scanf("%d",pi);
}
scanf("%d",&bnum); //输入数组b元素个数
for(pj=b;pj {
scanf("%d",pj);
}
/***** 在数组a和b都有数据时比较两个数组 *****/
/********** Begin *********/
pi=a,pj=b,pk=c;
while(pi {
if(*pi<*pj)
{
*pk=*pi;
pk++;
pi++;
}
else
{
*pk=*pj;
pk++;
pj++;
}
}
if(pi {while(pi {*pk=*pi;
pk++;
pi++;}
}
if(pj {while(pj {*pk=*pj;
pk++;
pj++;}
}
for ( pk=c; pk
/********** End **********/
/***** 如果数组a还有数据 *****/
/********** Begin *********/
/********** End **********/
/***** 如果数组b还有数据 *****/
/********** Begin *********/
/********** End **********/
/***** 输出数组c *****/
/********** Begin *********/
/********** End **********/
printf("\n");
return 0;
}
#define N 10
#define M 5
main()
{ int a[N], b[M], c[N+M], i, j, k ;
printf("Enter Array a \n");
for(i=0; i
for(i=0; i
while( i
else c[k++] = b[j++];
if(i
void merger(int a[],int n,int b[],int m,int c[])
{
int i,j,k;
i=j=k=0;
//concurrent merge
while(i
if(a[i]>b[j])
{
c[k]=b[j];
j++;
k++;
}
else
{
c[k]=a[i];
k++;
i++;
}
}
//merge one
while(i
c[k]=a[i];
i++;
k++;
}
//merge one
while(j
c[k]=b[j];
j++;
k++;
}
}
完整体: 数组a和b中分别放入an+1和bn+1个有小到大的有序数,请把这两个数组中的数由小到大的顺序归并在c数组中。