用C语言编写:求一批整数中出现最多的数字。输入一个正整数 ,再输入η个整数,分析每个整数的每一位数字,求出现次数最多的数字。
时间: 2024-11-06 14:19:24 浏览: 10
C语言输入一个整数序列并计算他们的值.rar_C语言输入一个整数序列并计算他们的值_输入序列C语言
5星 · 资源好评率100%
在C语言中,我们可以使用数组和哈希表来解决这个问题。首先,我们创建一个大小为10的数组,因为十进制数最多有10位,然后遍历输入的整数,统计每个数字出现的次数。最后,遍历数组找出出现次数最多的数字。
下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_DIGITS 10
#define TABLE_SIZE 10
int count[MAX_DIGITS] = {0}; // 初始化一个计数器数组
int max_count = 0; // 最大出现次数
int most_frequent_digit = -1; // 出现最频繁的数字
void analyze_number(int num) {
int digit;
while (num > 0) {
digit = num % 10; // 取余得到当前位数
count[digit]++;
if (count[digit] > max_count) {
max_count = count[digit];
most_frequent_digit = digit;
}
num /= 10; // 移除最低位
}
}
int main() {
int n, num, input[MAX_DIGITS];
printf("请输入整数的数量: ");
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
printf("请输入第%d个整数: ", i+1);
scanf("%d", &input[i]);
analyze_number(input[i]);
}
printf("出现次数最多的数字是: %d\n", most_frequent_digit);
printf("它出现了%d次。\n", max_count);
return 0;
}
```
在这个程序中,`analyze_number`函数负责处理单个输入的整数,而主函数则负责读取所有输入并调用该函数。当遍历完所有输入后,`most_frequent_digit`将存储出现次数最多的数字。
阅读全文