JAVA:找到双数组列表的平均值

时间:2014-09-02 18:36:06

标签: java arraylist

尝试在控制台中输入双打的arraylist,然后当用户使用ctrl-z或d结束arraylist输入时,找到他们使用双精度输入的数字列表的平均值。

我从这里得到很多错误,我不知道为什么! 任何和所有的帮助都是赞赏,因为我是一个Java初学者

public static void main(String[] args) {
    ArrayList<Double> numbers = new ArrayList<Double>();  

    Scanner in = new Scanner(System.in);   

    while (in.hasNextDouble())  
    {  
        Double input = in.nextDouble();  
        numbers.add(input);  
    }  

    in.close();

    for (Double element : numbers)  {  
        Double sum += element;
        System.out.println(sum/numbers.size()); 
    }
} 

4 个答案:

答案 0 :(得分:4)

计算最终平均值:

double sum = 0;
for(double d : numbers) {
    sum += d;
}
System.out.println(sum / numbers.size()); 

答案 1 :(得分:1)

// don't miss the imports
import java.util.ArrayList;
import java.util.Scanner;

// you might have missed to add your main() method in a class
public class Average {
    public static void main(String[] args) {
        // This part was ok
        ArrayList<Double> numbers = new ArrayList<Double>();
        Scanner in = new Scanner(System.in);
        while (in.hasNextDouble()) {
            Double input = in.nextDouble();
            numbers.add(input);
        }
        in.close();

        // Forgot to initialize the value of sum
        Double sum = 0d;
        for (Double element : numbers) {
            // add the element
            sum += element;
            // don't count the average here
        }
        // count it outside the loop
        System.out.println(sum / numbers.size());
    }
}

答案 2 :(得分:0)

Double sum += element;

这不是合法的语法,你试图在变量定义中添加一些东西,这是行不通的。你虽然很近。只需在sum循环之外声明变量for

double sum = 0;
for (double element : numbers)  {  
       sum += element;
   }
System.out.println(sum/numbers.size()); 

您也可能不希望每次都打印出当前的平均值,所以您应该在循环之后将其移动到那里。

答案 3 :(得分:0)

我添加了java.utilScanner所需的collections classes包 在您的代码主要问题是在您的for循环plz标记答案中。谢谢你:))

import java.util.*;
    public class Test {

        public static void main(String[] args) {
            Double sum=0.0;
              ArrayList<Double> numbers = new ArrayList<Double>();  

              Scanner in = new Scanner(System.in);   

              while (in.hasNextDouble())  
              {  
                 Double input = in.nextDouble();  
                 numbers.add(input);  
              }  

               in.close();


                 for (Double element : numbers)  {  
                    sum += element;
            }
                   System.out.println(sum/numbers.size()); 

              } 

    }