题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <stdio.h>
int main() {
int n, m;
scanf("%d%d", &n, &m);
int a[1000] = {0};
int b[1000] = {0};
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (int i = 0; i < m; i++) {
scanf("%d", &b[i]);
}
int i = 0;
int j = 0;
while (i < n && j < m) { // 当i和j都在各自数组的范围内时,执行循环
if (a[i] < b[j]) { // 如果a[i]小于b[j],则输出a[i]并i++
printf("%d ", a[i]);
i++;
} else { // 否则,输出b[j]并j++
printf("%d ", b[j]);
j++;
}
}
while (i < n) { // 如果数组a还有未输出的元素,则继续输出
printf("%d ", a[i]);
i++;
}
while (j < m) { // 如果数组b还有未输出的元素,则继续输出
printf("%d ", b[j]);
j++;
}
return 0;
}
#C语言#
查看10道真题和解析