由文件给出 N 个 1 到 30000 间无序数正整数,其中 1≤N≤10000,同一个正整数可能会出现多次,出现次数最多的整数称为众数。求出它的众数及它出现的次数。
输入格式:
第一行是正整数的个数 N,第二行开始为 N 个正整数。
输出格式:
输出文件有若干行,每行两个数,第 1 个是众数,第 2 个是众数出现的次数。 有多个众数按值大小顺序升序输出
输入样例:
在这里给出一组输入。例如:
12
2 4 2 3 2 5 3 7 2 3 4 3
结尾无空行
输出样例:
在这里给出相应的输出。例如:
2 4
3 4
结尾无空行
#include <bits/stdc++.h>
using namespace std;
int n;
int a[30001],b[30001]={0};
int max1=0;
int main(void)
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]>max1)
max1=a[i];
}
for(int i=1;i<=max1;i++)
{
for(int j=1;j<=n;j++)
{
if(i==a[j])
{
b[i]++;
}
}
}
int b1=b[1];
for(int i=1;i<=max1;i++)//找到最大数量
{
if(b[i]>b1)
{
b1=b[i];
}
}
for(int i=1;i<=max1;i++)
{
if(b[i]==b1)
{
printf("%d %d\n",i,b[i]);
}
}
return 0;
}
该程序旨在解决一个输入包含N个正整数的问题,这些数可能重复,任务是找出出现频率最高的正整数(众数)并输出其出现次数。输入包括正整数的数量N和N个正整数,输出为众数及其频次,多个众数按数值升序排列。示例中,输入12个正整数后,输出了两个众数24和34及其对应的出现次数。
1133

被折叠的 条评论
为什么被折叠?



