数组去重C语言怎么写,需要完整的代码
时间: 2023-03-13 20:00:48 浏览: 100
在 C 语言中可以使用以下方法来去除数组中的重复元素:
1. 可以将数组中的所有元素放到一个哈希表中,然后再遍历哈希表将不重复的元素添加到另一个数组中。
2. 也可以对数组进行排序,然后在遍历数组时判断当前元素是否与前一个元素相同,如果不同则将其添加到另一个数组中。
以下是使用第二种方法的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
// 冒泡排序函数,用于将数组升序排序
void bubble_sort(int *arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
// 定义数组并初始化
int arr[] = {1, 5, 2, 3, 2, 5};
int n = sizeof(arr) / sizeof(arr[0]);
// 将数组升序排序
bubble_sort(arr, n);
// 创建新数组用于存储去重后的结果
int *result = malloc(n * sizeof(int));
if (result == NULL) {
printf("内存分配失败!\n");
return 1;
}
// 遍历数组,将不重复的元素添加到新数组中
int count = 0;
result[count++] = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] != arr[i - 1]) {
result[count++] = arr[i];
}
}
// 输
阅读全文