C语言求两组整数的并集并按从大到小的顺序输出
时间: 2023-12-13 08:04:22 浏览: 120
可以先将两组整数合并到一个数组中,然后使用冒泡排序或快速排序等算法将数组按从大到小排序,最后输出即可。
下面是一个示例代码:
```c
#include <stdio.h>
// 定义数组大小
#define MAX_SIZE 100
// 冒泡排序函数,按从大到小排序
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr1[MAX_SIZE], arr2[MAX_SIZE], res[MAX_SIZE];
int n1, n2, i, j, k;
// 读入第一组整数
printf("请输入第一组整数(以-1结束):\n");
n1 = 0;
while (scanf("%d", &arr1[n1]) == 1 && arr1[n1] != -1) {
n1++;
}
// 读入第二组整数
printf("请输入第二组整数(以-1结束):\n");
n2 = 0;
while (scanf("%d", &arr2[n2]) == 1 && arr2[n2] != -1) {
n2++;
}
// 合并两组整数到一个数组中
k = 0;
for (i = 0; i < n1; i++) {
res[k++] = arr1[i];
}
for (i = 0; i < n2; i++) {
res[k++] = arr2[i];
}
// 对合并后的数组进行排序
bubbleSort(res, k);
// 输出结果
printf("并集按从大到小的顺序为:\n");
for (i = 0; i < k; i++) {
printf("%d ", res[i]);
}
printf("\n");
return 0;
}
```
注意,这里我们假设输入的整数都是正整数,如果有负整数的话需要对排序函数进行一些改动。
阅读全文