用c++语言写程序:从键盘输入数据的个数n及这n个数(包含重复数据),要求删除其中的重复数据,并输出去重后的数据,并保留重复数据中的一个数据。要求:用指针操作数组。
时间: 2024-02-11 10:06:14 浏览: 56
好的,下面是用C++语言实现该程序的代码:
```cpp
#include<iostream>
using namespace std;
int main()
{
int n;
cout << "请输入数据个数n: ";
cin >> n;
int* nums = new int[n]; // 动态分配数组空间
cout << "请输入" << n << "个数据: ";
for (int i = 0; i < n; i++)
cin >> *(nums + i);
int* p = nums;
for (int i = 0; i < n; i++)
{
bool flag = false; // 判断是否重复
for (int j = 0; j < i; j++)
{
if (*(p + i) == *(p + j))
{
flag = true;
break;
}
}
if (!flag)
cout << *(p + i) << " ";
}
delete[] nums; // 释放数组空间
return 0;
}
```
这个程序中,我们首先用 `new` 动态分配了一个大小为 `n` 的整型数组空间,并用指针 `nums` 指向了这个数组的首地址。然后,我们用 `for` 循环依次输入这 `n` 个数据。接下来,我们用两个嵌套的 `for` 循环遍历这 `n` 个数据,判断是否有重复的数据。如果有,我们就不输出;如果没有,我们就输出这个数据,并在输出后标记这个数据已经输出过了,避免重复输出。最后,我们用 `delete` 释放了刚才动态分配的数组空间,避免内存泄漏。
阅读全文