下面程序的功能是从键盘读取a和b两个数组的元素,这两个数组的元素均已从小到大排序(无相同元素),现将a和b合并为数组c,同样要求数组c也是从小到大排序(有相同元素时只保留一个)
#include<iostream> #include<cstdio> using namespace std; const int n=8; const int m=2*n; int a[n+1],b[n+1],c[m+1],i,j,k; void copy(int &x, int &y, int &i, int &j) { i=i+1; y=x; j=j+1; } int main() { for(i=1;i<=n;++i) cin>>a[i]; for(i=1;i<=n;++i) cin>>b[i]; i=1; j=1; _____(1)_______ while(_____(2)______) { if(a[i]<b[j]) copy(a[i],c[k+1],k,i); else if(b[j]<a[i]) copy(b[j],c[k+1],k,j); else { copy(a[i],c[k+1],k,i); _____(3)_______ } } while(_____(4)_____) copy(a[i],c[k+1],k,i); while(_____(5)_____) copy(b[j],c[k+1],k,j); for(i=1;i<=k;++i) cout<<" "<<c[i]; return 0; }