C語言 · 出現次數最多的數


問題描述
  編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然后程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即並列第一,那么只打印比較小的那個值。
  輸入格式:第一行是一個整數NN £ 20;接下來有N行,每一行表示一個整數,並且按照從小到大的順序排列。
  輸出格式:輸出只有一行,即出現次數最多的那個元素值。
輸入輸出樣例
樣例輸入
5
100
150
150
200
250
樣例輸出
150
 
 1 #include<stdio.h>
 2 int a[30];
 3 int main(){
 4     int n,sum=0,maxx=0;
 5     int ans=0;//定義要輸出的那個數 
 6     scanf("%d",&n);
 7     if(n<=0) return 0;//n<=0時不輸出
 8     a[0]=0;
 9     int i;
10     for(i=1;i<=n;i++){
11         scanf("%d",a+i);
12         /*后輸入的數不等於前一個輸入的數*/ 
13         if(a[i]!=a[i-1]){
14             if(sum>maxx){
15                 maxx=sum;
16                 /*記錄下前一個輸入的數*/
17                 ans=a[i-1];
18             }
19             sum=1;
20         }
21     /*后輸入的數等於前一個輸入的數,則sum+1*/
22         else
23             sum++;
24     }
25     if(sum>maxx){
26         maxx=sum;
27         ans=a[i-1];
28     } 
29     printf("%d\n",ans); 
30     return 0; 
31 }

 


免責聲明!

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



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