c语言编写一个程序,查找一个整数数组中的所有重复元素,并打印出来
时间: 2024-12-13 07:17:11 浏览: 11
在 C 语言中,我们可以使用哈希表(如数组或者链表)来辅助查找数组中的重复元素。下面是一个简单的示例,它使用一个大小固定的布尔型数组 `is_duplicate` 来记录每个元素是否已经出现过:
```c
#include <stdio.h>
#define ARRAY_SIZE 100 // 假设数组最大长度
void findDuplicates(int arr[], int n) {
int i, j;
for (i = 0; i < n; i++) {
if (arr[i] > ARRAY_SIZE) {
printf("数组太大,无法处理\n");
return;
}
if (is_duplicate[arr[i]]) { // 如果元素已经在 hash 表中,则重复
printf("%d 重复\n", arr[i]);
} else {
is_duplicate[arr[i]] = 1; // 标记该元素已出现
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 3, 5, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int is_duplicate[ARRAY_SIZE] = {0}; // 初始化 hash 表
findDuplicates(arr, n);
return 0;
}
```
这个程序会遍历给定的数组,如果遇到一个元素之前已经在 `is_duplicate` 中标记为 1,则认为它是重复的,并打印出来。
阅读全文