设计 给出若干个正整数,请找出出现次数最多的数的c语言代码
时间: 2024-09-25 15:08:58 浏览: 52
输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输入的那个整数。
设计一个C语言程序来找出给定一组正整数中出现次数最多的数,你可以使用哈希表(数组或结构体)来存储每个数字及其出现的次数。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 100 // 根据实际情况调整最大值
typedef struct {
int num;
int count;
} Frequency;
void findMostFrequent(int arr[], int n) {
int max_count = 0; // 最大出现次数
Frequency most_frequent[MAX_NUM] = {0}; // 初始化频率数组
for (int i = 0; i < n; i++) {
if (most_frequent[arr[i]] == 0) {
most_frequent[arr[i]].count = 1;
} else {
most_frequent[arr[i]].count++;
}
// 更新最大出现次数和对应的元素
if (most_frequent[arr[i]].count > max_count) {
max_count = most_frequent[arr[i]].count;
most_frequent[most_frequent[arr[i]].num].num = arr[i];
}
}
printf("出现次数最多的数是:%d, 出现了 %d 次\n", most_frequent[max_count - 1].num, max_count);
}
int main() {
int n;
printf("请输入正整数的数量:");
scanf("%d", &n);
int arr[n];
printf("请输入 %d 个正整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
findMostFrequent(arr, n);
return 0;
}
```
在这个程序中,我们首先定义了一个`Frequency`结构体,用于存储数字和它的计数。然后通过遍历输入数组,更新每个数字的计数,并在过程中查找出现次数最多的数据。最后,输出结果。
阅读全文