4

私は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

4 に答える 4

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"

于 2013-03-09T19:50:43.530 に答える
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));
于 2013-03-09T19:53:17.190 に答える
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();
}
于 2013-03-09T19:50:50.167 に答える
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
于 2013-03-09T19:51:03.117 に答える