编写一个求一批整数中出现次数最多的数字的程序。 求一批整数中出现最多的数字:输入一个正整数n(1<n≤1000),再输入n个整数,分析每个整数中的每一位数字,求出现次数最多的数字。例如输入3个整数1234,2345,3456,其中出现次数最多的数字是3和4,均出现了3次。用c语言
时间: 2024-02-11 21:06:22 浏览: 99
好的,以下是用 C 语言实现求一批整数中出现次数最多的数字的程序:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, *nums, i, j, digit, max_count = 0;
int count[10] = {0}; // 数字 0~9 出现的次数
printf("请输入正整数n(1<n≤1000): ");
scanf("%d", &n);
nums = (int*)malloc(n * sizeof(int)); // 动态分配数组
printf("请输入n个整数,用空格分隔: ");
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
// 统计每个数字出现的次数
j = nums[i];
while (j > 0) {
digit = j % 10;
count[digit]++;
j /= 10;
}
}
// 找出出现次数最多的数字
int max_digits[10] = {0};
for (i = 0; i < 10; i++) {
if (count[i] > max_count) {
max_count = count[i];
max_digits[0] = i;
} else if (count[i] == max_count) {
max_digits[++max_digits[0]] = i;
}
}
// 输出结果
printf("出现次数最多的数字是: ");
for (i = 1; i <= max_digits[0]; i++) {
printf("%d ", max_digits[i]);
}
printf(",均出现了%d次。\n", max_count);
free(nums); // 释放动态分配的内存
return 0;
}
```
您可以将以上代码保存为 .c 文件,用 C 语言编译器进行编译运行。
阅读全文