1. 程式人生 > 實用技巧 >HZNU1544眾數問題

HZNU1544眾數問題

難道真的會有人來看這個題解嗎?不會把..
我只是騙波閱讀量(如果有關注就更好了[滑稽]) 大致的思路寫在程式碼的註釋裡了,如有錯誤還望指正
/*                                                                    
 *            .,,       .,:;;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 }