输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。C语言
时间: 2023-10-30 14:09:26 浏览: 201
我可以为您提供一种解决方案。您可以使用哈希表来存储每个数出现的次数,并找出出现最多的数及其出现次数。以下是基本代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int main()
{
int arr[MAX_SIZE], freq[MAX_SIZE];
int n, max_freq = 0, max_num, i, j;
printf("请输入数字个数:");
scanf("%d", &n);
printf("请输入每个数字:\n");
for(i=0; i<n; i++)
{
scanf("%d", &arr[i]);
freq[i] = -1; // 初始化频率为-1,表示尚未计算
}
for(i=0; i<n; i++)
{
int count = 1;
for(j=i+1; j<n; j++)
{
if(arr[i] == arr[j])
{
count++;
freq[j] = 0; // 标记已计算
}
}
if(freq[i] != 0) // 如未计算,计算当前数的频率
{
freq[i] = count;
}
}
// 找出频率最高的数
for(i=0; i<n; i++)
{
if(freq[i] > max_freq)
{
max_freq = freq[i];
max_num = arr[i];
}
}
printf("出现次数最多的数字是 %d,出现次数为 %d", max_num, max_freq);
return 0;
}
```
这个程序可以处理最多100个整数,您可以根据需求调整数组大小。
阅读全文