C语言程序:合并两组整数并排序输出
#include <stdio.h>
int main() { int a[20], b[20], c[40]; // 定义三个数组 int m, n, i, j, k;
scanf('%d %d', &m, &n); // 输入两组整数的个数
for (i = 0; i < m; i++) { // 输入第一组整数
scanf('%d', &a[i]);
}
for (i = 0; i < n; i++) { // 输入第二组整数
scanf('%d', &b[i]);
}
i = 0; j = 0; k = 0; // 初始化三个数组的下标
while (i < m && j < n) { // 当两组整数都还有元素时
if (a[i] < b[j]) { // 将较小的数放入新数组中
c[k++] = a[i++];
} else if (a[i] > b[j]) {
c[k++] = b[j++];
} else { // 如果两个数相等,则放入任意一个数,并将两个数组的下标都加1
c[k++] = a[i++];
j++;
}
}
while (i < m) { // 将第一组剩余的数放入新数组中
c[k++] = a[i++];
}
while (j < n) { // 将第二组剩余的数放入新数组中
c[k++] = b[j++];
}
// 按从小到大顺序输出合并后的整数集
for (i = 0; i < k; i++) {
printf('%d ', c[i]);
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oQTv 著作权归作者所有。请勿转载和采集!