求一批整数中出现最多的数字。输入一个正整数n(1<n≤1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输入3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试用c语言编写相应程序。
时间: 2025-01-12 09:00:54 浏览: 77
在C语言中,你可以通过遍历输入的整数数组,并对每个数字的每一位进行计数,然后维护一个最大计数值和对应的字符数组来找出出现次数最多的数字。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_DIGITS 10 // 假设最大的位数不超过9
// 函数用于统计数字中某个位的出现次数
int count_digit(int num, int digit) {
char str[10];
itoa(num, str, 10); // 转换数字到字符串
int count = 0;
for (int i = 0; i < strlen(str); i++) {
if (str[i] - '0' == digit) { // 对比字符对应的数字值
count++;
}
}
return count;
}
int main() {
int n;
scanf("%d", &n);
// 定义一个二维数组存储每个数字的每位计数
int digit_count[MAX_DIGITS][10] = {0};
// 遍历输入的整数
for (int i = 0; i < n; i++) {
int input_num;
scanf("%d", &input_num);
// 分别计算每个位的数字出现次数并更新最大计数
for (int j = 0; j <= MAX_DIGITS; j++) {
digit_count[j][input_num % 10]++;
input_num /= 10;
}
}
// 找出出现次数最多的数字及其次数
int max_count = 0;
char most_common_digit;
for (int i = 0; i <= MAX_DIGITS; i++) {
for (int j = 0; j < 10; j++) {
if (digit_count[i][j] > max_count) {
max_count = digit_count[i][j];
most_common_digit = (char)(i * 10 + j);
}
}
}
printf("出现次数最多的数字是:%c,出现了%d次。\n", most_common_digit, max_count);
return 0;
}
```
阅读全文
相关推荐











