用c语言,输入一个整数数组(size=5),去掉其中重复的元素并输出结果。
时间: 2024-12-10 10:49:31 浏览: 10
在 C 语言中,可以使用哈希表或者排序的方式来去除数组中的重复元素。这里提供一种简单的思路,使用数组和额外的空间来完成,因为 C 语言原生没有数据结构库支持哈希表。
```c
#include <stdio.h>
#define SIZE 5
// 函数声明,用于存储唯一元素
int unique[SIZE];
void removeDuplicates(int arr[], int n) {
// 初始化唯一元素数组
for (int i = 0; i < SIZE; i++) {
unique[i] = -1;
}
// 遍历原数组,遇到新元素就放入unique数组中,并更新索引
int j = 0;
for (int i = 0; i < n; i++) {
if (unique[arr[i]] == -1) {
unique[j++] = arr[i];
}
}
// 输出去重后的数组
for (int i = 0; i < j; i++) {
printf("%d ", unique[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 4, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
return 0;
}
```
在这个例子中,我们创建了一个大小为 `SIZE` 的 `unique` 数组来记录每个遇到的新元素位置。遍历原始数组时,如果 `unique` 中对应的值还是 `-1`,则将这个元素存入 `unique` 并更新索引。最后只打印出 `unique` 中的元素,即得到了去重后的数组。
注意,这种方法只适用于元素范围不会超过 `SIZE` 的情况。对于较大的数组,应该考虑使用更复杂的数据结构如链表或动态数组(vector)来处理。
阅读全文