用c++编写一个去除数组重复的数的程序
时间: 2023-05-16 19:05:40 浏览: 169
可以使用以下代码来去除数组中的重复元素:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 2, 4, 3, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int i, j, k;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n;) {
if (arr[j] == arr[i]) {
for (k = j; k < n; k++) {
arr[k] = arr[k + 1];
}
n--;
} else {
j++;
}
}
}
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个程序使用了两个嵌套的循环来遍历数组,如果发现重复的元素,就将后面的元素向前移动一位,然后将数组长度减一。最后,输出去重后的数组。
相关问题
用c++写去掉数组内部重复的元素的函数
在C++中,可以编写一个名为`removeDuplicates`的函数来去除数组内的重复元素。这里提供一个简单的线性时间复杂度解决方案,使用了STL中的`std::set`容器来自动去重:
```cpp
#include <iostream>
#include <vector>
#include <set>
void removeDuplicates(int arr[], int n) {
std::set<int> uniqueSet;
for (int i = 0; i < n; ++i) {
uniqueSet.insert(arr[i]);
}
int index = 0;
for (const auto& elem : uniqueSet) {
arr[index++] = elem;
}
}
// 测试示例
int main() {
int arr[] = {1, 2, 3, 4, 2, 5, 6, 3};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
std::cout << "Array after removing duplicates: ";
for (int i = 0; i < n; ++i) {
std::cout << arr[i] << " ";
}
return 0;
}
```
这个函数首先将数组元素插入到`std::set`中,因为`set`不允许有重复值,所以重复的元素会被自动过滤掉。然后我们遍历`set`并将元素复制回原数组。
C++编写数组元素去重程序,从键盘输入数组 a[10]的各元素,然后去除重 复元素,再输出.
在C++中,你可以使用STL(Standard Template Library)中的`std::set`数据结构来实现数组元素的去重。`std::set`自动存储唯一的值,所以我们可以通过将数组转换为集合,然后再转换回数组的方式来实现去重。下面是一个简单的示例:
```cpp
#include <iostream>
#include <set>
using namespace std;
int main() {
int a[10], n;
// 从键盘输入数组元素
cout << "请输入数组元素个数:";
cin >> n;
// 输入并添加到集合中(会自动去重)
set<int> uniqueElements;
for (int i = 0; i < n; ++i) {
cout << "请输入第" << (i+1) << "个元素:";
cin >> a[i];
uniqueElements.insert(a[i]);
}
// 将集合转换回数组
vector<int> result(uniqueElements.begin(), uniqueElements.end());
// 输出去重后的数组
cout << "去重后的数组:";
for (const auto& element : result) {
cout << element << " ";
}
return 0;
}
```
在这个示例中,我们首先创建了一个`std::set`来存储唯一元素,然后遍历输入的数组,每次插入新元素都会检查其是否已存在。最后,我们将集合转换为`std::vector`,因为集合是无序的,而数组需要顺序访问。
阅读全文