2017-02-13 8 views
0

私はかなり新しいJavaです。私は平均を見つけるためにコードを作成しようとしています。私は、平均がすべての数値を加えて、その数を数値の数で割っていることを理解していますが、それをどのようにコードするのかは分かりません。私の推測では、forループが必要だが、そこから何をすべきか分からない。プログラムは、基本的にはファイルを読み込み、平均を計算するよう求めます。ここで私がこれまで持っているコードです:平均は10.625である必要がありますテキストファイルの平均値を求める

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 

:私が使用してしまう

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にあります。どんな援助も深く感謝しています。前もって感謝します。

+1

こんにちはジャッキーを計算するためにStreamを使用できるJava 8で

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; 

をあなたが実際に直面している問題は何ですか?結果は何ですか? –

+0

あなたの質問の重複は[this thread](http://stackoverflow.com/questions/7008189/calculate-average-in-java)ですか? –

+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); 
+0

ありがとう!私はJavaでかなり新しいです。私は本当にこれに固執しましたが、それはとても簡単でした。答えに時間をとってくれてありがとう – Jack

+0

嬉しいことに、喜んで回答を受け入れてください。 :) @ジャッキー – Jarvis

0

平均の計算には問題があるようです。私はここでその問題に対処します:Javaの7では

以下を、forループを使用:あなたは平均

double sum = Arrays.stream(num).sum(); //computes the sum of the array values 
    double average = sum/length; 
関連する問題