0
我的代码似乎有问题,因为它没有正确打印。我试图使用我们为类创建的另一种方法来查找数组的模式。查找数组的模式?
例如,一个包含元素{4,4,4,5,5}的数组,打印模式为5而不是4.为什么?
public static int mode(int[] numbers) {
int winner = 0;
for(int i=1; i<numbers.length; i++){
winner = numbers[0];
if (occr(numbers,numbers[i]) == occr(numbers,numbers[i-1])){
winner = numbers[i];}
else if(occr(numbers,numbers[i]) > occr(numbers,numbers[i-1])){
winner = numbers[i];}
else if(occr(numbers,numbers[i]) < occr(numbers,numbers[i-1])){
winner = numbers[i-1];}
}
return winner;
}
public static int occr(int[] numbers, int x){
int counter = 0;
for(int i = 0; i < numbers.length; i++){
if(numbers[i] == x){
counter++; }
}
return counter;
}
如果(值>赢家)方法将无法正常工作,因为如果您有一个{4,4,5,5,5}的数组会怎么样? 3 <5&模式将是4而不是5? –