zzuli oj 1123 最佳校友


題目描述 :
北京校友會每年舉辦兩次,所有校友都有校友編號,每次到會的校友都在簽到簿上寫下自己的編號和姓名,
在校友會成立5周年的聚會上將頒發“最佳校友獎”,該獎項頒發給到會次數最多的校友。現在請你編寫程
序,找出這個獎項的得主。若有多個校友並列第一,則均可獲獎。  
輸入
輸入若干個整數,表示簽到簿上的校友編號,所有編號均為0~99的整數,以一個負數作為輸入結束的標志。
輸出
輸出出現次數最多的編號。若獲獎選手有多個,則按從小到大的順序輸出選手編號,用空格隔開。
解題思路:
1.編寫排序函數。2.統計同一編號出現的次數,跟之前的數氣球顏色差不多。
代碼實現:

 1 #include<stdio.h>
 2 #define N 100
 3 int main()
 4 {
 5  int a[N]={0},n,i,max,l=0;
 6  while(scanf("%d",&n),n>=0)
 7  {
 8   a[n]++;
 9  }
10  max=a[0];
11  for(i=0;i<N;i++)
12  {
13   if(a[i]>=max)
14   max=a[i];
15  }
16  for(i=0;i<N;i++)
17  {
18   if((a[i]==max)&&l==0)
19   {
20    printf("%d ",i);
21    l=1;
22   } 
23   else if(a[i]==max)
24   printf("%d",i);
25  }
26 }

 


易錯分析:
1.直接用輸入的編號做數組下標可以省去查找的步驟,然后每個元素的數值即使編號也就是數組下標的出現次數。
2.用打擂台的方式先找出最大值。
3.然后用標志變量來判斷是否是第一個出現的最佳校友。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM