程序填空题:完成两个有序顺序表的合并操作。
函数merge用于将两个顺序存储的递增有序表合并成一个非递减有序表。如“1,2,3,4”和“2,3,5 ,8,10”合并成“1,2,2,3,3,4,5,8,10”。
```c++
#include
#define M 4
#define N 5
void merge(int a[],int b[],int c[])
{
int i=0,j=0,@@[k=0](1);
while(@@[i {
if(a[i] c[k++]=a[i++];
else
@@[c[k++]=b[j++]](1);
}
@@[while(i c[k++]=a[i++];
while(j c[k++]=b[j++];
}
int main()
{
int a[M],b[N],c[M+N],i,j;
for(i=0;i scanf("%d",&a[i]);
for(j=0;j scanf("%d",&b[j]);
merge(a,b,c);
for(i=0;@@[i printf("%d ",c[i]);
printf("\n");
return 0;
}
```
答案:
第1空:k=0
第2空:i
第3空:c[k++]=b[j++]
第4空:while(i
第5空:i
```c++
#include
#define M 4
#define N 5
void merge(int a[],int b[],int c[])
{
int i=0,j=0,@@[k=0](1);
while(@@[i
if(a[i] c[k++]=a[i++];
else
@@[c[k++]=b[j++]](1);
}
@@[while(i
while(j
}
int main()
{
int a[M],b[N],c[M+N],i,j;
for(i=0;i
for(j=0;j
merge(a,b,c);
for(i=0;@@[i
printf("\n");
return 0;
}
```
答案:
第1空:k=0
第2空:i
第3空:c[k++]=b[j++]
第4空:while(i
第5空:i