记录一个数组中相同数字的个数,C语言
时间: 2024-12-15 08:18:53 浏览: 6
在C语言中,记录一个整数数组中相同数字的个数可以使用哈希表(如`std::unordered_map`或者自定义的数据结构)或者直接遍历数组计数。这里我将展示一个简单的遍历数组并计数的方法:
```c
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10 // 假设数组大小
int countOccurrences(int arr[], int n) {
// 初始化一个大小等于数组最大值+1的计数数组
int count[SIZE + 1] = {0};
for (int i = 0; i < n; i++) {
// 如果当前元素已经在计数数组中,增加计数
if (count[arr[i]] > 0)
count[arr[i]]++;
// 否则,设置计数为1
else
count[arr[i]] = 1;
}
// 返回每个非零计数,即找到的重复次数
int uniqueCount = 0;
for (int i = 0; i <= SIZE; i++) {
if (count[i] > 0)
uniqueCount++;
}
return uniqueCount;
}
int main() {
int arr[] = {1, 2, 2, 3, 4, 5, 5, 5, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int occurrences = countOccurrences(arr, n);
printf("Number of distinct occurrences: %d\n", occurrences);
return 0;
}
```
在这个例子中,我们创建了一个名为`countOccurrences`的函数,它接受一个整数数组和它的长度作为输入,然后遍历数组更新`count`数组。最后,我们在主函数中调用这个函数,并打印出不同数字的个数。
阅读全文