数组去重的函数,C语言
时间: 2024-09-27 09:13:46 浏览: 42
C语言实现数组去重操作
在C语言中,数组去重是一个常见的操作,特别是当你处理一维动态数组或固定大小数组时。这里提供一种基本的方法,通过遍历数组并检查每个元素是否已存在新数组中:
```c
#include <stdio.h>
#include <stdbool.h>
#define ARRAY_SIZE 10
// 函数声明
bool isPresent(int array[], int size, int item);
void removeDuplicates(int input[], int* output, int capacity);
int main() {
int input[ARRAY_SIZE] = {1, 5, 2, 3, 5, 4, 2, 6, 7, 1};
int output[ARRAY_SIZE];
int count = 0;
// 去重
removeDuplicates(input, output, ARRAY_SIZE);
// 输出结果
printf("Array with duplicates removed: ");
for (int i = 0; i < count; i++) {
printf("%d ", output[i]);
}
return 0;
}
// 判断元素是否已在数组中
bool isPresent(int array[], int size, int item) {
for (int i = 0; i < size; i++) {
if (array[i] == item)
return true;
}
return false;
}
// 去除数组中的重复元素
void removeDuplicates(int input[], int* output, int capacity) {
int index = 0;
for (int i = 0; i < capacity && input[i]; i++) {
if (!isPresent(output, index, input[i])) {
output[index++] = input[i];
}
}
output[index] = 0; // 结束标记,表示数组结束
}
```
在这个例子中,`removeDuplicates`函数接收输入数组、一个新的存储区`output`和其容量。它遍历`input`数组,如果发现某个元素不在`output`中,则将其添加到新数组中。最后,`output`数组会保留唯一元素。
阅读全文