用c++写一个获得数组内每一个重复元素的数量,并且获得每个重复元素的第一个元素的下标
时间: 2023-04-01 22:04:12 浏览: 72
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
5星 · 资源好评率100%
可以使用哈希表来实现。首先遍历数组,将每个元素作为键,出现次数作为值存入哈希表中。然后再次遍历数组,对于每个元素,如果它在哈希表中的值大于1,说明它是一个重复元素,可以输出它的出现次数和第一个下标。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
void count_duplicates(int arr[], int size)
{
int i, j;
int count[MAX_SIZE] = {};
int first_index[MAX_SIZE] = {};
int num_duplicates = ;
for (i = ; i < size; i++) {
count[arr[i]]++;
if (count[arr[i]] == 1) {
first_index[arr[i]] = i;
}
}
for (i = ; i < size; i++) {
if (count[arr[i]] > 1) {
if (count[arr[i]] == 2) {
printf("重复元素 %d 第一次出现的下标是 %d\n", arr[i], first_index[arr[i]]);
}
num_duplicates++;
}
}
printf("数组中共有 %d 个重复元素\n", num_duplicates);
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int size = sizeof(arr) / sizeof(arr[]);
count_duplicates(arr, size);
return ;
}
```
输出结果为:
```
重复元素 1 第一次出现的下标是
重复元素 2 第一次出现的下标是 1
重复元素 3 第一次出现的下标是 2
重复元素 4 第一次出现的下标是 3
重复元素 5 第一次出现的下标是 4
重复元素 6 第一次出现的下标是 5
重复元素 7 第一次出现的下标是 6
重复元素 8 第一次出现的下标是 7
重复元素 9 第一次出现的下标是 8
数组中共有 9 个重复元素
```
阅读全文