c++:从键盘输入包含m个整数的集合存入数组a中、包含n个整数的集合存入数组b中,求a和b的并集c。要求:用指针操作数组。
时间: 2024-03-18 11:39:08 浏览: 68
好的,这是一个数组求并集的题目,以下是C++的代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int m, n;
cout << "请输入集合a的大小m:";
cin >> m;
cout << "请输入集合b的大小n:";
cin >> n;
int* a = new int[m];
int* b = new int[n];
cout << "请输入集合a中的元素:" << endl;
for (int i = 0; i < m; i++) {
cin >> a[i];
}
cout << "请输入集合b中的元素:" << endl;
for (int i = 0; i < n; i++) {
cin >> b[i];
}
int* c = new int[m + n];
int* p = a;
int* q = b;
int* r = c;
while (p < a + m && q < b + n) {
if (*p < *q) {
*(r++) = *(p++);
} else if (*p > *q) {
*(r++) = *(q++);
} else {
*(r++) = *(p++);
q++;
}
}
while (p < a + m) {
*(r++) = *(p++);
}
while (q < b + n) {
*(r++) = *(q++);
}
cout << "集合a和集合b的并集为:";
for (int i = 0; i < r - c; i++) {
cout << c[i] << " ";
}
delete[] a;
delete[] b;
delete[] c;
return 0;
}
```
运行结果如下:
```
请输入集合a的大小m:5
请输入集合b的大小n:6
请输入集合a中的元素:
1 2 3 4 5
请输入集合b中的元素:
3 4 5 6 7 8
集合a和集合b的并集为:1 2 3 4 5 6 7 8
```
上面的代码中,首先通过 `new` 动态分配了两个大小分别为 `m` 和 `n` 的数组 `a` 和 `b`,然后遍历 `a` 和 `b` 数组,将不重复的元素移动到新数组 `c` 中。最后通过 `delete` 释放了动态分配的内存。
阅读全文