- 题目描述:
-
输入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
思路:
另外设一个数组统计呗。
PS:哈工大的考研题怎么这么简单呢。
代码:
#include <stdio.h> #include <string.h> int main(void) { int a[20], b[11]; int i, max; while (scanf("%d",&a[0]) != EOF) { for (i=1; i<20; i++) scanf("%d",&a[i]); for (i=1; i<=10; i++) b[i] = 0; for (i=0; i<20; i++) b[a[i]] ++; for (i=1; i<=10; i++) { if (i==1) { max = i; continue; } if (b[i] > b[max]) max = i; } printf("%d ", max); } return 0; } /************************************************************** Problem: 1057 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/