c语言怎么删除数组中的重复元素
时间: 2024-12-28 14:38:37 浏览: 9
在C语言中,删除数组中的重复元素通常需要借助额外的数据结构如哈希表或排序算法,因为数组本身是有序的线性结构,不能直接修改其内容。以下是一个简单的示例,展示如何通过遍历数组并利用临时数组存储不重复的元素:
```c
#include <stdio.h>
void removeDuplicates(int arr[], int n) {
if (n == 0 || n == 1) return; // 如果数组只有一个元素或为空,无需处理
int temp[n]; // 创建一个临时数组
int j = 0; // 初始化临时数组的索引
for (int i = 0; i < n - 1; i++) { // 遍历原数组
if (arr[i] != arr[i + 1]) { // 如果当前元素与下一个不同
temp[j++] = arr[i]; // 将元素放入临时数组
}
}
temp[j] = arr[n - 1]; // 放入最后一个元素,如果存在重复则覆盖
printf("非重复元素: ");
for (int k = 0; k < j; k++) {
printf("%d ", temp[k]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
return 0;
}
```
这个例子不会改变原数组`arr`的内容,而是创建了一个新的数组来存储非重复元素。
阅读全文