2016-04-28 19 views
1

Hey Leute, ich bin wirklich neu in Java, und ziemlich schrecklich in Mathe, ich soll ein Programm machen, das den Benutzer einen Wert eingeben kann, habe es gemittelt, es ausgedruckt, und erlaube dann die Eingabe eines anderen Wertes, lasse es gemittelt werden, und drucke und fahre fort. Gehe ich falsch, wenn ich am Ende jeder Eingabe durch 2 dividiere oder was?Versuche, Durchschnitt jedes Mal, wenn etwas hinzugefügt wird

Antwort

1

Durchschnitt ist die Summe aller Zahlen dividiert durch die Anzahl der Zahlen in der Summe.

Was Sie hier tun, ist nicht durchschnittlich. Sie addieren die Hälfte jeder neuen Zahl zur Gesamtsumme. Ich tue nicht was du hier machst.

Nur um die Dinge besser verständlich, lassen Sie uns einen sum machen und ein counter:

public class GradeAvg { 

    public static void main(String[] args) { 
     int sum; 
     int counter; 
     // ... 
    } 

} 

Jedes Mal, wenn Sie für eine Reihe stellen, erhöhen Sie den Zähler und fügen Sie die neue Nummer sum:

int newNumber; 
// ask for input 
newNumber = input.nextInt() 
sum += newNumber; 
counter++; 

Sie können dann Ausgabe der Durchschnitt wie folgt aus:

System.out.println("The average is: " + (double)sum/counter); 
0

Das ist falsch. Jede Zahl, die Sie hinzufügen, beträgt 50% gegenüber den anderen Zahlen. müssen Sie die Anzahl (Anzahl der Elemente) und die Summe verfolgen und jedes Mal die Summe durch die Anzahl der Elemente teilen.

(OLD_AVERAGE * OLD_COUNT + NEW_NUMBER)/(OLD_COUNT + 1)

oder nur SUM und COUNT und jedes Mal MITTELWERT = SUMME

: so dass jedes Mal, wenn Sie eine Nummer der Funktion sein sollte hinzufügen /ANZAHL. inc. Zähle jede neue Zahl um 1. Summe durch die eingegebene Zahl.

0

komplette funktionierende lösung ... hoffe es hilft ...

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    double sum = 0; 
    int count = 1; 
    double average = 0; 
    System.out.print("Please Enter the " + count + " grade being added to the average:"); 
    for (; count <= 5;) { 
     sum = sum + input.nextInt(); 
     average = sum/count; 
     System.out.println("The average is now: " + average); 
     count++; 
     if (count <= 5) 
      System.out.println("Please enter the " + count + " grade being averaged:"); 
    } 
    input.close(); 
} 
Verwandte Themen