c++:从键盘输入数据的个数n及这n个数(包含重复数据),要求删除其中的重复数据,并输出去重后的数据。要求:用指针操作数组。
时间: 2024-03-18 21:38:57 浏览: 12
好的,这是一个可以用指针操作数组来解决的去重问题。
具体的实现过程如下:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int *nums = new int[n]; // 动态分配数组空间,存储输入的数据
int len = 0; // 记录不重复数据的个数
for (int i = 0; i < n; i++) {
int x;
cin >> x;
bool flag = true;
for (int j = 0; j < len; j++) {
if (nums[j] == x) {
flag = false; // 如果已经存在相同的数据,不进行插入
break;
}
}
if (flag) {
nums[len++] = x; // 将不重复的数据插入到数组中
}
}
// 遍历数组,输出去重后的数据
for (int i = 0; i < len; i++) {
cout << nums[i] << " ";
}
cout << endl;
delete[] nums; // 释放数组空间
return 0;
}
```
这里使用了动态分配数组空间来存储输入的数据,使用一个变量 `len` 记录不重复数据的个数,并依次将不重复的数据插入到数组中。遍历数组,输出去重后的数据。注意需要在程序结束前释放动态分配的数组空间,避免内存泄漏。