那麼,我正在使用Java編程一個算術計算器,並且我試圖實現一個計算模式的函數。問題是,由於某種原因,它不能正常工作。這裏的功能:統計模式(計算器Java)
public static String moda(Double[] valores){
Double resultado = null;
Integer contador = 0;
Integer contadorFinal = 0;
for(int i = 0; i < valores.length; i++){
contador = 0;
for(int j = 0; j < valores.length; j++){
if(valores[i] == valores[j]) contador++;
}
if(contador > contadorFinal){
resultado = valores[i];
contadorFinal = contador;
}
}
return "La moda es " + resultado + " que se repite un total de " + contadorFinal + " veces.";
}
出於某種原因,它總是返回我的數組的第一個值(例如,如果雙[] VALORES包含(4,7,7,8,8,8),它會回報我4);並且模式總是1。
我一直在尋找一遍又一遍的代碼,對我來說它看起來很好。你能幫我嗎?
那麼,你只有一個「計數」變量。在你的例子中(4,7,7,8,8,8)如何知道7次發生了兩次,8次發生了三次?您需要在數組中爲每個值計數一個變量。 – markspace
@markspace謝謝你的回答! 「contadorFinal」是第二個計數器。 – xFunkyTImes
對,對不起。但起初我無法弄清楚你在做什麼。你的算法在大型數據集上不會很好的預處理,你可以看看如何在一個循環中完成這個操作(這是我的評論假定的)。 – markspace