用了3个数组,结构都将是具有一定顺序的,比如我的是:非递减的!
用i, j做指针下标,进行移动!
注意判断条件及剩余数据,注意处理完整性!
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int a[100]; int b[100]; int c[200], e=0; int main() { int i, j; int n, m; scanf("%d %d", &n, &m ); for(i=0; i<n; i++) { scanf("%d", &a[i] ); } for(j=0; j<m; j++) { scanf("%d", &b[j] ); } i = 0; j = 0; while(i<n && j<m ) { if(a[i] <= b[j] ) { c[e++] = a[i] ; i++; } else { c[e++] = b[j]; j++; } } if(i==n && j<m) { while(j<m) { c[e++] = b[j]; j++; } } else if(j==m && i<n) { while(i<n) { c[e++] = a[i] ; i++; } } for(i=0; i<e; i++) { if(i==0) printf("%d", c[0] ); else printf(" %d", c[i] ); } printf(" "); return 0; }