题目描述:
输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。
输入:
测试数据有多组,每组输入20个1-10之间的数。
输出:
对于每组输入,请输出1-10中的众数。
样例输入:
5 1 5 10 3 5 3 4 8 6 8 3 6 5 10 7 10 2 6 2
样例输出:
5
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
while (1)
{
int num = 0; //众数
int a[11] = {0};
//输入数据
for (int i = 0; i < 20; i ++)
{
if (scanf("%d", &num) == EOF)
return 0;
a[num]++;
}
for (int i = 1; i < 11; i ++)
{
if (a[i] > a[num])
{
num = i;
}
else if(a[i] == a[num])
{
if (i < num)
{
num = i; //相等时输出权值小的
}
}
}
cout<<num<<endl;
}
return 0;
}