這個挺簡單的,就是就是注意下當范圍小于等于0的時候是不輸出的
* * *
問題描述?
編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然后程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即并列第一,那么只打印比較小的那個值。?
輸入格式:第一行是一個整數N,N? £? 20;接下來有N行,每一行表示一個整數,并且按照從小到大的順序排列。?
輸出格式:輸出只有一行,即出現次數最多的那個元素值。?
輸入輸出樣例?
樣例輸入?
5?
100?
150?
150?
200?
250?
樣例輸出?
150
~~~
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int max = 0;//定義最大次數
int num = 0;//定義最大次數對應的數
int count = 1;//定義臨時計數器
Scanner input = new Scanner(System.in);
int n = input.nextInt();
if(n<=0){
System.exit(0);
}
int[] a = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = input.nextInt();
//當輸入數據等于前一個數據時,計數器自加
if (i>=1 &&a[i]==a[i-1])
{
count++;
//當計數器大于max時候賦值給max
if (max<count){
max = count;
num = a[i];
}
continue;
}
//每一輪計數器歸1
count = 1;
}
if (num==0){
System.out.println(a[0]);
}else {
System.out.println(num);
}
}
}
~~~