题解 | 有序序列合并
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <stdio.h> void Input_arr(int* a, int n)//输入n个float数值到数组a(初始化 { int i = 0; for (i = 0; i < n; i++) scanf("%d", a + i); } void merge(int* a, int* b,int n,int m)//合并打印两个升序排序的数组,打印顺序为升序 { int i = 0, j = 0; int na = 0, nb = 0; while (i<n&&j<m) { na = *(a + i);nb = *(b + j); if (na < nb) { printf("%d ", na);i++; } else { printf("%d ", nb); j++;} } if(i<n) { for(;i<n;i++) printf("%d ", *(a+i)); } else { for(;j<m;j++) printf("%d ", *(b+j));} } int main(int argc, char const* argv[]) { int a[1000] = {0 }; int b[1000] = { 0 }; int n = 0, m =0; scanf("%d%d", &n, &m); Input_arr(a, n); Input_arr(b, m); merge(a, b, n, m); return 0; }