Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找文本文件的平均值_Java_Arrays_Text Files_Average_Mean - Fatal编程技术网

Java 查找文本文件的平均值

Java 查找文本文件的平均值,java,arrays,text-files,average,mean,Java,Arrays,Text Files,Average,Mean,我对java相当陌生,我正在尝试编写代码以找到平均值。我知道平均值是把所有的数字相加,然后除以数字的个数,但我真的不知道如何编码。我的猜测是,我需要一个for循环,但我不知道从那里该做什么。程序基本上要求读取一个文件,然后计算平均值。以下是我目前掌握的代码: import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class Calculations { publi

我对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]);
    }

}

平均值应为10.625。非常感谢您的帮助。先谢谢你

只需引入一个新变量
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);
System.out.println(“数字是:”);
双和=0//新变量
for(int i=0;i
看来你只是在计算平均值时遇到了麻烦;我将在这里讨论这个问题:

在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;
在Java8中,您可以使用
来计算平均值

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

嗨,杰基,你到底面临着什么麻烦?你得到了什么结果?是你问题的重复吗?首先你需要给出一些背景。这是为了一些练习吗?如果是的话,您是否仅限于基本体和数组?你必须要对巨大的文件负责吗?是否有关于如何读取文件的要求?你能把所有的东西都读入内存,然后把数据作为一个整体处理吗?非常感谢!我对Java非常陌生,我真的很执着于此,但它很简单。非常感谢您抽出时间回答
    double sum = Arrays.stream(num).sum(); //computes the sum of the array values
    double average = sum/length;