c语言如何删除数组中的重复
时间: 2024-12-14 08:28:47 浏览: 20
在C语言中,删除数组中的重复元素通常需要额外的数据结构,如哈希表或者通过双指针法遍历数组。这里有一个简单的示例,使用冒泡排序的思想,逐个比较元素并移除重复:
```c
#include <stdio.h>
void removeDuplicates(int arr[], int n) {
if (n == 0 || n == 1) {
return; // 如果数组为空或只有一个元素,无需操作
}
int i, j;
for (i = 0; i < n - 1; i++) {
if (arr[i] == arr[i + 1]) {
// 把后面的元素向前移动一位
memmove(&arr[i + 1], &arr[i + 2], sizeof(arr[i]) * (n - i - 2));
n--; // 减少剩余元素的数量
}
}
}
int main() {
int arr[] = {1, 2, 2, 3, 4, 4, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
printf("Array after removing duplicates: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个例子中,`removeDuplicates`函数会遍历数组,如果发现连续的重复元素,就跳过它们,并将后面的元素前移。注意这种方法不会改变原始数组的顺序。
阅读全文