c语言找出出现次数最多的数
时间: 2024-10-01 19:11:20 浏览: 84
C语言查找数组里数字重复次数的方法
在C语言中,找出数组中出现次数最多的数,可以使用哈希表(如`unordered_map`)或者直接遍历数组并计数的方式来实现。这里是一个简单的示例,使用遍历数组的方法:
```c
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
int findMaxFrequency(int arr[], int n) {
int max_count = 1; // 初始化最大频率为1
int current_count = 1;
int max_num = arr[0]; // 假设第一个元素是最频繁的
for (int i = 1; i < n; i++) {
if (arr[i] == max_num) {
current_count++;
} else {
if (current_count > max_count) {
max_count = current_count;
max_num = arr[i];
}
current_count = 1;
}
}
// 检查最后一个元素是否是最频繁的
if (current_count > max_count) {
max_count = current_count;
max_num = arr[n - 1];
}
return max_num;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 2, 2, 3, 3, 3};
int n = sizeof(arr) / sizeof(arr[0]);
int most_frequent = findMaxFrequency(arr, n);
printf("出现次数最多的数是:%d,出现了 %d 次\n", most_frequent, max_count);
return 0;
}
```
在这个程序中,我们遍历整个数组,每遇到一个相同的数字,就增加它的计数。如果当前计数超过了之前的最大计数,我们就更新最大计数和最频繁的数字。最后返回那个出现次数最多且最大的数。
阅读全文