用c语言求一批整数中出现最多的数字。输入一个正整数n(1<n≤1 000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输人3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试编写相应程序。
时间: 2024-12-12 20:30:40 浏览: 37
C语言输入一个整数序列并计算他们的值.rar_C语言输入一个整数序列并计算他们的值_输入序列C语言
5星 · 资源好评率100%
在C语言中,可以使用数组来存储这n个整数的每一位,并使用一个哈希表(也可以用数组或结构体结合计数)来统计每个数字的出现次数。下面是一个简单的示例程序,它首先将所有整数分解成单个数字并统计它们,然后找出出现次数最多的数字:
```c
#include <stdio.h>
#include <string.h>
#define MAX_DIGITS 10 // 最大位数假设为10
// 结构体用于存储数字及其出现次数
typedef struct {
int digit;
int count;
} DigitCount;
void countDigits(int num[], int n) {
DigitCount counts[MAX_DIGITS] = {0};
for (int i = 0; i < n; i++) {
char strNum[] = "0123456789";
while (num[i]) {
counts[num[i] % 10].count++;
num[i] /= 10;
}
}
// 找出出现次数最多的数字
int maxCount = 0, mostFrequentDigit = -1;
for (int i = 0; i < 10; i++) {
if (counts[i].count > maxCount) {
maxCount = counts[i].count;
mostFrequentDigit = i;
}
}
printf("出现次数最多的数字是%d,出现了%d次。\n", mostFrequentDigit, maxCount);
}
int main() {
int n;
scanf("%d", &n);
int numbers[n];
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
countDigits(numbers, n);
return 0;
}
```
这个程序首先读入n个整数,然后通过while循环遍历每个数字的每一位,更新计数。最后,遍历计数数组找出出现次数最多的数字。
阅读全文