那么,我正在使用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