用c语言写一个除去数组中重复元素的函数
时间: 2023-05-26 16:03:06 浏览: 68
以下是用C语言编写一个能够除去数组中重复元素的函数:
```c
void removeDuplicates(int arr[], int n) {
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++;
}
}
}
}
```
该函数接受一个整数数组和数组的长度作为参数。算法基于双重循环,其中外层循环遍历数组中的每个元素,而内层循环用于查找重复元素并将其删除。如果内层循环找到重复的元素,则将其向左平移一位,并递减数组长度。这样可以确保任何重复的元素均已删除。
您可以通过将此函数与您的主程序结合使用来测试它。例如,您可以使用以下代码:
```c
int main() {
int arr[] = {1, 2, 2, 3, 4, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
for(int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出将是:
```
1 2 3 4 5
```
这显示了在我们的原始数组中除去重复元素的结果。位于输出中的数字表示每个唯一的数字。