C语言程序:合并两组整数并去重排序
#include <stdio.h>
int main() {
int a[20], b[20], c[40]; // 定义两个数组和一个合并后的数组
int m, n, i, j, k;
printf("输入第一组整数个数:");
scanf("%d", &m);
printf("输入第一组整数:");
for (i = 0; i < m; i++) {
scanf("%d", &a[i]);
}
printf("输入第二组整数个数:");
scanf("%d", &n);
printf("输入第二组整数:");
for (i = 0; i < n; i++) {
scanf("%d", &b[i]);
}
// 合并两组整数
i = j = 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 {
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++) {
for (j = i + 1; j < k; j++) {
if (c[i] == c[j]) {
for (int l = j; l < k - 1; l++) {
c[l] = c[l + 1];
}
k--;
j--;
}
}
}
// 排序
for (i = 0; i < k - 1; i++) {
for (j = i + 1; j < k; j++) {
if (c[i] > c[j]) {
int temp = c[i];
c[i] = c[j];
c[j] = temp;
}
}
}
// 输出结果
printf("合并去重后的整数为:");
for (i = 0; i < k; i++) {
printf("%d ", c[i]);
}
printf("\n");
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oQW0 著作权归作者所有。请勿转载和采集!