c语言数组去重。要求编写去重的函数
时间: 2024-09-13 22:16:53 浏览: 47
C语言实现数组去重操作
在C语言中,由于缺乏内置的数组去重功能,我们需要手动遍历数组并创建新的数组来存储去重后的元素。这里有一个简单的例子,假设我们有一个整数数组:
```c
#include <stdio.h>
// 函数声明
void removeDuplicates(int arr[], int n);
int main() {
int input[] = {1, 2, 3, 4, 2, 5, 6, 3};
int size = sizeof(input) / sizeof(input[0]);
printf("Original array:\n");
for (int i = 0; i < size; i++) {
printf("%d ", input[i]);
}
removeDuplicates(input, size);
printf("\nArray after removing duplicates:\n");
for (int i = 0; i < size; i++) {
printf("%d ", input[i]);
}
return 0;
}
// 数组去重函数
void removeDuplicates(int arr[], int n) {
if (n <= 1) return; // 如果只有一个元素或无元素,直接返回
int unique[size]; // 新建一个同样大小的数组用于存放唯一元素
int j = 0; // 定义新数组的索引
for (int i = 0; i < n - 1; i++) {
if (arr[i] != arr[i + 1]) { // 如果当前元素不等于下一个元素
unique[j++] = arr[i]; // 将不重复的元素添加到新数组
}
}
unique[j] = arr[n - 1]; // 最后将最后一个元素添加到新数组
// 更新原数组为去重后的结果
for (int i = 0; i < j; i++) {
arr[i] = unique[i];
}
}
```
当你运行这个程序,你会看到原始数组中的重复元素已经被移除。
阅读全文