4、数组去重。要求编写去重的函数C语言
时间: 2024-09-13 09:17:16 浏览: 47
在C语言中,由于C本身不提供直接的数组去重功能,我们通常会通过遍历数组并利用额外的数据结构如链表或数组辅助存储已见过的元素来进行去重。这里有一个简单的示例,它使用了另一个一维数组来存储唯一的元素:
```c
#include <stdio.h>
// 函数声明,用于存放唯一元素
int unique_array[100];
void removeDuplicates(int arr[], int n) {
int i, j, index = 0; // 遍历索引,初始为0
for (i = 0; i < n; i++) {
if (unique_array[i] == 0) { // 如果该位置未存储元素
while (unique_array[index] != 0) // 跳过已存在的元素
index++;
unique_array[index] = arr[i]; // 将新元素存入
unique_array[i] = 1; // 标记当前元素已被处理
}
}
// 输出去重后的数组
printf("去重后的数组: ");
for (j = 0; j <= index; j++) {
if (unique_array[j] != 0)
printf("%d ", unique_array[j]);
}
}
int main() {
int arr[] = {1, 2, 2, 3, 3, 3, 4, 5, 5};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
return 0;
}
```
在这个例子中,`removeDuplicates()`函数首先检查`unique_array`中对应位置是否已经有值。如果没有,就将原数组中的元素复制到`unique_array`中,并标记当前位置。最后,只打印出`unique_array`中非零的元素,即去重后的结果。
阅读全文