問題描述
編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然后程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即并列第一,那么只打印比較小的那個值。
輸入格式:第一行是一個整數N,N? £? 20;接下來有N行,每一行表示一個整數,并且按照從小到大的順序排列。
輸出格式:輸出只有一行,即出現次數最多的那個元素值。
輸入輸出樣例
樣例輸入
5
100
150
150
200
250
100
150
150
200
250
樣例輸出
150
這道題要注意n的取值范圍,不然一組數值過不去
#include<iostream> using namespace std;int main() {int n;int a[30];while(cin>>n&&n>0&&n<=20){for(int i = 0;i<n;i++)cin>>a[i];int count = 0,p = a[0],max = 0,num = 0;for(int i = 0;i<n;i++){if(p == a[i])count++;else{count = 0;p = a[i];count++;}if(count>max){max = count;num = a[i];}}cout<<num<<endl;} }
?