试题详情:
将2个按升序排列的整数数列,仍然按升序合并,存放到另一个数组中,要求每个数依次插入恰当的位置,也就是一次到位,不得在新数组中重新排序。
输入提示:
先输入两个整数,分别为以下两行升序数列的长度,然后输入两行升序整数数列。
输出提示:
输出仅一行升序数列。
输入样本:
4 3
1 3 4 7
2 3 6
输出样本:
1 2 3 3 4 6 7
#include <stdio.h> int main() { int n1,n2,a[100],b[100],c[200],i,j,k;
scanf("%d%d",&n1,&n2); for(i=0;i<n1;i++) scanf("%d",&a[i]); for(i=0;i<n2;i++)
scanf("%d",&b[i]); i=0; j=0; k=0;while(i<n1&&j<n2) { if(a[i]<b[j]) { c[k]=a[i];
k++; i++; } else { c[k]=b[j]; k++; j++; } } while(i<n1) { c[k]=a[i]; k++; i++;
} while(j<n2) { c[k]=b[j]; k++; i++; } for(i=0;i<(n1+n2);i++) printf("%d
",c[i]); return 0; }