2017-02-13 8 views
0

Ich bin ziemlich neu in Java und ich versuche zu programmieren, um den Durchschnitt zu finden. Ich verstehe, dass der Durchschnitt alle Zahlen addiert und dann die Summe durch die Zahl der Zahlen teilt, aber ich bin nicht wirklich sicher, wie man das kodiert. Meine Vermutung ist, dass ich eine for-Schleife brauche, aber ich weiß nicht, was ich von dort machen soll. Das Programm bittet im Grunde um eine Datei zu lesen und dann den Durchschnitt zu berechnen. Hier ist der Code, den ich bisher habe:Durchschnitt einer Textdatei finden

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]); 
    } 

} 

}

Die Datei würde ich verwenden list.txt ist, die enthält:

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 

Die mittlere 10.625 sein sollte. Jede Hilfe wird sehr geschätzt. Vielen Dank im Voraus.

+1

Hallo Jackie berechnen Was für Probleme hast du eigentlich? Welche Ergebnisse bekommst du? –

+0

Ist [this thread] (http://stackoverflow.com/questions/7008189/calculate-average-in-java) ein Duplikat Ihrer Frage? –

+0

Zuerst müssen Sie einen Kontext geben. Ist das für einige Übung und wenn ja, sind Sie auf Primitive und Arrays beschränkt? Müssen Sie große Dateien berücksichtigen? Gibt es Anforderungen an das Einlesen der Datei? Können Sie alles im Speicher lesen und dann die Daten als Ganzes verarbeiten? –

Antwort

0

Führen Sie einfach eine neue Variable sum ein, initialisieren Sie sie auf 0 und fügen Sie der Variablen die Elemente hinzu, während Sie sie drucken.

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

Vielen Dank! Ich bin ziemlich neu in Java und ich war wirklich fest daran, aber es war so einfach. Vielen Dank, dass Sie sich die Zeit nehmen, um zu antworten – Jack

+0

Gut zu wissen, bitte markieren Sie die Antwort als akzeptiert. :) @Jackie – Jarvis

0

Es scheint, dass Sie einfach Schwierigkeiten haben, den Durchschnitt zu berechnen; Ich werde diese Frage befassen sich hier:

In Java 7 und unten verwenden, um eine for Schleife:

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; 

In Java 8 Sie eine Stream können die durchschnittliche

double sum = Arrays.stream(num).sum(); //computes the sum of the array values 
    double average = sum/length; 
Verwandte Themen