c++:从键盘输入数据的个数n及这n个数(包含重复数据),要求删除其中的重复数据,并输出去重后的数据。要求:用指针操作数组。
时间: 2024-03-18 13:39:07 浏览: 54
C++将数字从键盘读入数组并统计数字出现的次数,元素从大到小的顺序排序
好的,这是一个比较经典的数组去重题目,以下是C++的代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入数据个数n:";
cin >> n;
int* arr = new int[n]; // 动态分配数组内存
cout << "请输入" << n << "个整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int* p = arr;
int* q = arr;
for (int i = 0; i < n; i++) {
if (*p != *q) {
*(++p) = *q;
}
q++;
}
cout << "去重后的数组为:";
for (int i = 0; i <= p - arr; i++) {
cout << arr[i] << " ";
}
delete[] arr; // 释放动态分配的数组内存
return 0;
}
```
运行结果如下:
```
请输入数据个数n:8
请输入8个整数:
1 2 3 4 2 3 5 6
去重后的数组为:1 2 3 4 5 6
```
上面的代码中,首先通过 `new` 动态分配了一个大小为 `n` 的数组 `arr`,然后用指针 `p` 和 `q` 分别指向数组的开头,遍历整个数组,将不重复的元素移动到数组的前面,最后用指针 `p` 指向的位置作为新数组的末尾。最后通过 `delete` 释放了动态分配的内存。
阅读全文