Java 没有输出正确的均值或方差

Java 没有输出正确的均值或方差,java,arrays,for-loop,arraylist,while-loop,Java,Arrays,For Loop,Arraylist,While Loop,我的任务是每行取一个数字,计算平均值、中值、方差和标准差。当输入null或输入500个数字时,while循环停止。我计算了中位数和标准差,但由于某种原因,我的方差和平均值输出是错误的。另外,如果您能帮助我的参数为while循环也结束时,输入500个数字 我的意见: 0.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2

我的任务是每行取一个数字,计算平均值、中值、方差和标准差。当输入null或输入500个数字时,while循环停止。我计算了中位数和标准差,但由于某种原因,我的方差和平均值输出是错误的。另外,如果您能帮助我的参数为while循环也结束时,输入500个数字

我的意见:

0.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2.0、2、2.0、2.0、2.0、2.0、2.0、2.0、2.0、0、2.0、2.0、2.0、0、2.0、2.0、2.0、2.0、0、2.0、2.0、0、2.0、2.0、2.0、2.0、0、2.0、2.0、2.0、2.0、0、0、2.0、2 0,8.0,8.0,8.0,8.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0, 11.0, 11.0, 11.0, 11.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 16.0, 16.0, 16.0, 17.0, 17.0, 17.0, 17.0, 18.0, 18.0, 18.0, 18.0, 18.0, 18.0, 18.0, 19.0, 19.0, 19.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 21.0, 21.0, 21.0, 21.0, 21.0, 21.0, 21.0, 21.0, 22.0, 22.0, 22.0, 22.0, 22.0, 22.0, 22.0, 23.0, 23.0, 23.0, 23.0, 23.0, 24.0, 24.0, 24.0, 24.0, 24.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0, 26.0, 26.0, 26.0, 26.0, 26.0, 26.0, 26.0, 26.0, 27.0, 27.0, 27.0, 28.0, 28.0, 28.0, 29.0, 29.0, 29.0, 29.0, 29.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 31.0, 31.0, 31.0, 31.0, 33.0, 33.0, 33.0, 33.0, 33.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0, 35.0, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 36.0, 37.0, 37.0, 37.0, 38.0, 38.0, 38.0, 38.0, 39.0, 39.0, 39.0, 39.0, 39.0, 39.0, 39.0, 40.0, 40.0, 40.0, 41.0, 41.0, 41.0, 41.0, 41.0, 42.0, 42.0, 42.0, 42.0, 43.0, 43.0, 43.0, 43.0, 44.0, 44.0, 44.0, 45.0, 45.0, 45.0, 45.0, 45.0, 46.0, 46.0, 46.0, 46.0, 46.0, 46.0, 47.0, 47.0, 47.0, 47.0, 47.0, 49.0, 49.0, 49.0, 49.0, 49.0, 50.0, 50.0, 51.0, 51.0, 51.0, 51.0, 51.0, 52.0, 52.0, 52.0, 52.0, 52.0, 53.0, 53.0, 53.0, 53.0, 54.0, 54.0, 54.0, 55.0, 55.0, 55.0, 56.0, 56.0, 56.0, 56.0, 56.0, 56.0, 57.0, 57.0, 58.0, 58.0, 58.0, 58.0, 58.0, 59.0, 59.0, 59.0, 59.0, 59.0, 59.0, 60.0, 60.0, 60.0, 60.0, 60.0, 60.0, 61.0, 61.0, 61.0, 61.0, 61.0, 61.0, 61.0, 61.0, 62.0, 62.0, 62.0, 62.0, 63.0, 63.0, 63.0, 64.0, 64.0, 64.0, 64.0, 64.0, 64.0, 64.0, 64.0, 65.0, 65.0, 65.0, 65.0, 65.0, 65.0, 66.0, 66.0, 66.0, 66.0, 66.0, 66.0, 67.0, 67.0, 67.0, 68.0, 68.0, 68.0, 68.0, 68.0, 68.0, 68.0, 68.0, 68.0, 69.0, 69.0, 69.0, 69.0, 69.0, 69.0, 70.0, 70.0, 70.0, 70.0, 70.0, 70.0, 70.0, 71.0, 71.0, 71.0, 71.0, 71.0, 71.0, 71.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 73.0, 73.0, 73.0, 73.0, 74.0, 74.0, 75.0, 75.0, 75.0, 75.0, 76.0, 76.0, 76.0, 76.0, 76.0, 77.0, 77.0, 77.0, 77.0, 77.0, 77.0, 77.0, 78.0, 78.0, 78.0, 79.0, 79.0, 79.0, 79.0, 79.0, 79.0, 79.0, 79.0, 79.0, 80.0, 80.0, 80.0, 80.0, 81.0, 81.0, 81.0, 82.0, 82.0, 82.0, 82.0, 82.0, 82.0, 83.0, 83.0, 83.0, 83.0, 84.0, 84.0, 84.0, 84.0, 84.0, 85.0, 85.0, 85.0, 85.0, 85.0, 85.0, 85.0, 86.0, 86.0, 87.0, 87.0, 87.0, 87.0, 87.0, 87.0, 88.0, 88.0, 88.0, 88.0, 88.0, 89.0, 89.0, 89.0, 89.0, 90.0, 90.0, 90.0, 91.0, 91.0, 91.0, 91.0, 92.0, 92.0, 92.0, 93.0,93.0,93.0,93.0,94.0,94.0,94.0,94.0,94.0,95.0,95.0,95.0,96.0,96.0,96.0,96.0,97.0,97.0,98.0,98.0,98.0,98.0,99.0,99.0,100.0

空的

我的输出:

平均值:47.21
中位数:47.00
差异:857.34 标准差:29.28

预期产出:

平均值:47.27
差异:856.71
标准差:29.27

BufferedReader标准=
新的BufferedReader(新的InputStreamReader(System.in));
NumberFormat nf=新的十进制格式(“0.00”);
nf.setMinimumFractionDigits(2)//设置最小位数
nf.setMaximumFractionDigits(2)//设置最大位数
字符串输入值;
双和=0;
双计数器=0;
双中位数=0;
双方差=0;
双方差计数器=0;
列表输入=新的ArrayList();
列表编号=新的ArrayList();
而((inputValue=stdin.readLine())!=null&&!inputValue.equals(“”){
input.add(inputValue);
numbers.add(Double.parseDouble(inputValue));
}
对于(int i=0;i
这就是在IDE中使用格式化程序(如果不是调试器)的帮助所在

您的问题是,您正在对每个输入上的所有值求和

while ((inputValue = stdin.readLine()) != null && !inputValue.equals("")){
    input.add(inputValue);
    numbers.add (Double.parseDouble(inputValue));        
    // sum all the values on every input i.e. 1 1 2 1 2 3 1 2 3 4
    for (int i = 0; i < input.size(); i++){
        sum += (numbers.get(i));
        counter++;  
    }
while((inputValue=stdin.readLine())!=null&&!inputValue.equals(“”){
input.add(inputValue);
numbers.add(Double.parseDouble(inputValue));
//将每个输入的所有值相加,即1 1 2 3 1 2 3 4
对于(int i=0;iwhile ((inputValue = stdin.readLine()) != null && !inputValue.equals("")){
    input.add(inputValue);
    numbers.add (Double.parseDouble(inputValue));        
    // sum all the values on every input i.e. 1 1 2 1 2 3 1 2 3 4
    for (int i = 0; i < input.size(); i++){
        sum += (numbers.get(i));
        counter++;  
    }
while ((inputValue = stdin.readLine()) != null && !inputValue.equals("")){
    input.add(inputValue);
    numbers.add (Double.parseDouble(inputValue));        
}
// sum all the values AFTER all the input. i.e. 1 2 3 4
for (int i = 0; i < input.size(); i++){
    sum += (numbers.get(i));
    counter++;  
}