我想写段代码,找出一个数组中出现次数最多的数,c语言
时间: 2023-05-19 21:06:42 浏览: 66
可以使用哈希表来解决这个问题,具体实现如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 1000
int find_most_frequent(int arr[], int n) {
int i, max_count = 0, max_num = 0;
int *count = (int *)calloc(MAX_SIZE, sizeof(int)); // 初始化计数数组为0
for (i = 0; i < n; i++) {
count[arr[i]]++; // 统计每个数字出现的次数
if (count[arr[i]] > max_count) { // 更新出现次数最多的数字
max_count = count[arr[i]];
max_num = arr[i];
}
}
free(count); // 释放计数数组的内存
return max_num;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3};
int n = sizeof(arr) / sizeof(int);
int most_frequent = find_most_frequent(arr, n);
printf("The most frequent number is %d\n", most_frequent);
return 0;
}