C语言判断数组中重复元素的个数
时间: 2024-09-18 14:16:03 浏览: 85
C语言查找数组里数字重复次数的方法
5星 · 资源好评率100%
在C语言中,判断数组中重复元素的个数可以采用哈希表、计数排序或者是遍历数组并用临时数组存储出现多次的元素。这里我会提供一种常见的简单方法,即遍历数组,使用一个计数器来记录每个元素出现的次数。
```c
#include <stdio.h>
int countDuplicates(int arr[], int n) {
int count[1000]; // 假设数组元素范围较小,最多1000种元素
int duplicates = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > 1000) {
printf("Array contains values outside the range.\n");
return -1; // 如果值超出预设范围,返回错误
}
count[arr[i]]++; // 对每个元素加一计数
if (count[arr[i]] > 1) { // 如果元素出现了两次以上
duplicates++;
}
}
return duplicates;
}
// 示例
int main() {
int arr[] = {1, 2, 3, 4, 5, 2, 6, 7, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int duplicate_count = countDuplicates(arr, n);
if (duplicate_count != -1) {
printf("Number of duplicate elements: %d\n", duplicate_count);
}
return 0;
}
```
这个函数会统计数组`arr`中有多少个元素出现了超过一次的情况,并返回结果。如果数组包含超出预设范围的元素,它会返回-1表示错误。
阅读全文