编写程序,分别输入两个按从小到大排序的数组 a 和 b,将这两个有序数组合并,使合并后的数组仍是从小到大有序的。
合并两个有序数组的方法:
-
有两个有序数组a和b,其中数组a的末尾有足够的空间容纳数组b,将数组b容纳到数组a中。
-
创建一个新数组c,数组c的长度要大于等于数组a和b之和。通过比较两个有序数组中的元素,谁小就把谁放到数组c中,直到其中一个数组为空,最后把剩下的数组元素全部放到数组c里。
测试输入:
10
10 15 42 52 59 64 67 73 82 88
3
24 32 57
输入说明: 第一行为n,表示输入数组a的n个整数。 第二行为从小到大的n个整数。 第三行为m,表示输入数组b的m个整数。 第四行为从小到大的m个整数。
预期输出: 10 15 24 32 42 52 57 59 64 67 73 82 88
用第二种方法做:
#include#define N 20 int main() { int a[N]={ 0 }, b[N]={ 0 }; int i,j,k,anum,bnum,c[N+N]; scanf("%d",&anum); //输入数组a元素个数 for(i=0;i=b[j]) { c[k]=b[j];k++;j++; } else { c[k]=a[i];k++;i++; } } for(i;i
运行结果:



