c语言 出现次数最多的那个数字,若有多个数字的出现次数都是最多,则为最大的那个数字 输入格式: 输入一串数字(长度不超过100)。 输出格式: 输出幸运数字。
时间: 2024-09-15 17:04:31 浏览: 57
输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输入的那个整数。
在C语言中,要找出一串数字中出现次数最多的那个数字,可以通过以下步骤实现:
1. 创建一个数组用于记录每个数字出现的次数,考虑到数字范围未知,可以使用散列表(哈希表)来存储。
2. 遍历输入的数字串,更新散列表中对应数字的计数。
3. 遍历散列表,找到计数最多的数字。如果存在多个数字出现次数相同,则选择最大的那个数字作为幸运数字。
下面是一个简单的C语言代码示例,实现上述功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NUM 100 // 假设输入的数字不超过100个
#define MAX_KEY 100 // 假设输入的数字不超过100
int main() {
int numbers[MAX_NUM]; // 存储输入的数字串
int count[MAX_KEY] = {0}; // 存储每个数字出现的次数
int n; // 输入数字的数量
int luckyNum = 0; // 幸运数字
int maxCount = 0; // 出现次数最多的数字的计数
// 读取数字串的数量
scanf("%d", &n);
// 读取数字串
for (int i = 0; i < n; ++i) {
scanf("%d", &numbers[i]);
}
// 更新数字出现的次数
for (int i = 0; i < n; ++i) {
count[numbers[i]]++;
}
// 寻找出现次数最多的数字
for (int i = 0; i < MAX_KEY; ++i) {
if (count[i] > maxCount) {
maxCount = count[i];
luckyNum = i;
} else if (count[i] == maxCount) {
// 如果计数相同,且当前数字大于已记录的最大幸运数字,则更新幸运数字
if (i > luckyNum) {
luckyNum = i;
}
}
}
// 输出幸运数字
printf("%d\n", luckyNum);
return 0;
}
```
这段代码首先定义了两个数组,一个用于存储输入的数字串,另一个用于存储每个数字出现的次数。通过遍历输入的数字串来更新计数数组,然后再遍历计数数组以找到出现次数最多且最大的数字。
阅读全文