难道真的会有人来看这个题解吗?不会把..
我只是骗波阅读量(如果有关注就更好了[滑稽]) 大致的思路写在代码的注释里了,如有错误还望指正
/*
* .,, .,:;;iiiiiiiii;;:,,. .,,
* rGB##HS,.;iirrrrriiiiiiiiiirrrrri;,s&##MAS,
* r5s;:r3AH5iiiii;;;;;;;;;;;;;;;;iiirXHGSsiih1,
* .;i;;s91;;;;;;::::::::::::;;;;iS5;;;ii:
* :rsriii;;r::::::::::::::::::::::;;,;;iiirsi,
* .,iri;;::::;;;;;;::,,,,,,,,,,,,,..,,;;;;;;;;iiri,,.
* ,9BM&, .,:;;:,,,,,,,,,,,hXA8: ..,,,.
* ,;&@@#r:;;;;;::::,,. ,r,,,,,,,,,,iA@@@s,,:::;;;::,,. .;.
* :ih1iii;;;;;::::;;;;;;;:,,,,,,,,,,;i55r;;;;;;;;;iiirrrr,..
* .ir;;iiiiiiiiii;;;;::::::,,,,,,,:::::,,:;;;iiiiiiiiiiiiri
* iriiiiiiiiiiiiiiii;;;::::::::::::::::;;;iiiiiiiiiiiiiiiir;
* ,riii;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;iiir.
* iri;;;::::,,,,,,,,,,:::::::::::::::::::::::::,::,,::::;;iir:
* .rii;;::::,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,::::;;iri
* ,rii;;;::,,,,,,,,,,,,,:::::::::::,:::::,,,,,,,,,,,,,:::;;;iir.
* ,rii;;i::,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,,::i;;iir.
* ,rii;;r::,,,,,,,,,,,,,:,:::::,:,:::::::,,,,,,,,,,,,,::;r;;iir.
* .rii;;rr,:,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,:,si;;iri
* ;rii;:1i,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,:,ss:;iir:
* .rii;;;5r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sh:;;iri
* ;rii;:;51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.:hh:;;iir,
* irii;::hSr,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,sSs:;;iir:
* irii;;:iSSs:.,,,,,,,,,,,,,,,,,,,,,,,,,,,..:135;:;;iir:
* ;rii;;:,r535r:...,,,,,,,,,,,,,,,,,,..,;sS35i,;;iirr:
* :rrii;;:,;1S3Shs;:,............,:is533Ss:,;;;iiri,
* .;rrii;;;:,;rhS393S55hh11hh5S3393Shr:,:;;;iirr:
* .;rriii;;;::,:;is1h555555h1si;:,::;;;iirri:.
* .:irrrii;;;;;:::,,,,,,,,:::;;;;iiirrr;,
* .:irrrriiiiii;;;;;;;;iiiiiirrrr;,.
* .,:;iirrrrrrrrrrrrrrrrri;:.
* ..,:::;;;;:::,,.
*/
1 #include <stdio.h>
2
3 int main()
4 {
5 int n;
6 scanf("%d",&n);
7
8 // int a[50000]; 注意到每次只需要统计输出的数的次数而不需要这个数本身,可以用一个临时变量now代替
9 int now;
10
11 int i, num[10000] = {0};//num[now] 表示 now 这个数字出现的次数 num[10000] = {0}相当于把整个数组清零
12
13 for (i = 0; i < n; i++)
14 {
15 // scanf("%d",&a[i]);
16 // num[a[i]] = num[a[i]] + 1;
17
18 scanf("%d",&now);//输入当前的数
19 num[now] = num[now] + 1;//把当前的数统计的次数+1
20 }
21
22 int MAX = 0;//记录出现次数最多的那个数(也就是众数) 出现的次数
23
24 for (now = 0; now < 10000; now++)
25 {
26 if (num[now] > MAX) MAX = num[now];
27 }
28
29 int answer;
30
31 for (now = 0; now < 10000; now++)
32 {
33 if (num[now] == MAX) //如果当前的数出现的次数和 出现次数最多的数一样多 那这个数就是众数
34 {
35 answer = now;//因为是从小到大循环 所以第一次满足条件的数一定是所有满足条件的最小解
36 break;
37 }
38 }
39
40 printf("%d
",answer);
41 printf("%d",MAX);
42 return 0;
43 }