平均计算程序问题

时间:2013-03-09 19:46:02

标签: java

我刚开始学习Java,我现在很困惑。我正在尝试制作一个程序来平均用户输入的任意数量的数字,但我无法弄清楚如何允许用户输入任意数量的数字。现在,代码只允许他们在平均值之前做1个数字。

注意: 我写这个错误的机会很有可能,我这样做是为了看看我目前所知道的

我使用Eclipse

我正在www.thenewboston.org学习

以下是代码:

import java.util.Scanner;

class MainClass {
    public static void main(String[] args){
        System.out.println("Enter Grades Now");
        Scanner input = new Scanner(System.in);
        double input2 = input.nextDouble();

        System.out.println(average(input2));
    }

    public static double average(double...numbers){
        double total=0;
        for(double x:numbers)
            total+=x;

        return total/numbers.length;
    }

}

4 个答案:

答案 0 :(得分:3)

您可以使用LinkedList<Double>和循环让用户输入一定数量的数字。

Scanner input = new Scanner(System.in);
List<Double> allDoubles = new LinkedList<Double>();

do {
    System.out.print("Next grade: ");
    allDoubles.add(input.nextDouble());
} while (input.hasNextDouble());

System.out.println(average(allDoubles.toArray(new Double[0])));

输入任意数量的值,然后输入一些文本,如"done"

答案 1 :(得分:1)

您需要一个循环来接受所有值。存储它们的List也很有用:

  public static void main(String[] args){
    System.out.println("Enter Grades Now:");

    List<Double> inputs =  new ArrayList<Double>();
    Scanner input = new Scanner(System.in);

    while(input.hasNextDouble()){

          inputs.add(input.nextDouble()); //add values to the list

     }

    }

    System.out.println(average(inputs));
}


 public static double average(List<Double> numbers){
    double total=0;
    for(Double x:numbers)
        total+=x;

    return total/numbers.size();
}

答案 2 :(得分:1)

ArrayList<Double> al = new ArrayList<Double>();
while(input.hasNextDouble){
    al.add(input.nextDouble())
    System.out.print("Prompt: "); //ask for input here
}
// average the elements in the arraylist

答案 3 :(得分:1)

您可以建议用户输入数字,用空格分隔:

Scanner input = new Scanner(System.in);
String userInput = input.nextline();

// e.g. "12 23 34"
String[] stringArray = userInput.split(" ");
Double[] doubleArray = new Double[stringArray.length];

// converting string array to double array    
for (int i = 0; i < stringArray.length; ++) {
    doubleArray[i] = Double.parseDouble(stringArray[i]);
}
System.out.println(average(doubleArray));