难道真的会有人来看这个题解吗?不会把..
我只是骗波阅读量(如果有关注就更好了[滑稽]) 大致的思路写在代码的注释里了,如有错误还望指正
/*
* .,, .,:;;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\n",answer); 41 printf("%d",MAX); 42 return 0; 43 }
原文:https://www.cnblogs.com/hznudreamer/p/13249892.html