我对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。非常感谢任何帮助。先感谢您。
答案 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;