查找文本文件的平均值

时间:2017-02-13 02:07:23

标签: java arrays text-files average mean

我对java很新,我正在尝试编写代码以找到平均值。我知道平均值是添加所有数字,然后将总和除以数字的数量,但我不确定如何编码。我的猜测是我需要一个for循环,但我不知道该怎么做。该程序基本上要求读取文件,然后计算平均值。这是我到目前为止的代码:

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class Calculations 
{

public static void main(String[] args) throws FileNotFoundException 
{
    System.out.println("Please enter a file name");
    Scanner keyboard = new Scanner(System.in);

    String filename = keyboard.next();
    Scanner reader = new Scanner (new File(filename));

    int length = reader.nextInt();

    double [] num = new double[length];
    double [] num2 = new double[length];

    System.out.println("The numbers are:");

    for(int i = 0; i < length; i++)
    {
        num[i] = reader.nextDouble();
        System.out.println(num[i]);
    }

}

}

我将使用的文件是list.txt,其中包含:

20
    1.1 2 3.3 4 5.5 6 7 8.5 9 10.0

    11 12.3 13 14 15.5 16.1 17 18 19.2 20.0

平均值应为10.625。非常感谢任何帮助。先感谢您。

2 个答案:

答案 0 :(得分:0)

只需引入一个新变量sum,将其初始化为0,然后在打印时将元素添加到变量中。

System.out.println("The numbers are:");
double sum = 0; //new variable
for(int i = 0; i < length; i++)
{
    num[i] = reader.nextDouble();
    sum += num[i];
    System.out.println(num[i]);
}
sum /= (double) length; //divide by n to get the average
System.out.print("Average : ");
System.out.println(sum);

答案 1 :(得分:0)

看起来你只是在计算平均值时遇到麻烦;我将在这里解决这个问题:

在Java 7及更低版本中,使用for循环:

    double sum = 0; //declare a variable that will hold the sum

    //loop through the values and add them to the sum variable
    for (double d : num){
        sum += d;
    }
    double average = sum/length;

在Java 8中,您可以使用Stream来计算平均值

    double sum = Arrays.stream(num).sum(); //computes the sum of the array values
    double average = sum/length;