尝试在控制台中输入双打的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());
}
}
答案 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.util
和Scanner
所需的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());
}
}