题解 | 有序序列合并
有序序列合并
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;
}


查看20道真题和解析