Werte aus Array addieren und Mittelwert bilden

RedWizard

Neues Mitglied
Hallo!
Ich möchte ein Programm schreiben, welches eine vom Benutzer vorgegebene Anzahl an double-Werten einliest und anschließend den Mittelwert berechnet. Hierfür habe ich folgenden Code geschrieben:

public class Mittelwert {
public static void main (String[] args){
Scanner scanner = new Scanner (System.in);
System.out.print("Bitte geben Sie die Anzahl der einzulesenden Werte ein: ");
int anzahl = scanner.nextInt();

if (anzahl <= 0){
System.out.print("Fehler! Es wurde keine gültige Anzahl angegeben.");
}
else{
for (int i = 1; i <= anzahl; i++){
System.out.print("Bitte geben Sie den " + i + ". Wert ein: ");
double messwert = scanner.nextDouble();
}

int []array = new int [anzahl];

double summe = 0.0;
double mittelwert = 0.0;

for (int j = 0; j < array.length; j++){
summe = summe + array[j];
mittelwert = summe / anzahl;
}
System.out.println(mittelwert);

}
scanner.close();
}
}

Als Ergebnis wird mir in der Konsole immer 0.0 ausgegeben. Könnt ihr mir sagen wo der Fehler liegt und was ich ausbessern muss, damit das Programm mir den richtigen Wert ermittelt?
 
Moin,

Dein Array ist ja auch gar nicht gefüllt !!
Java:
for (int i = 1; i <= anzahl; i++){
System.out.print("Bitte geben Sie den " + i + ". Wert ein: ");
double messwert = scanner.nextDouble();
}

int []array = new int [anzahl];
Hier liest Du zwar Werte ein, aber nur auf eine (noch dazu jeweils neue) Variable, die aber außerhalb der for-Schleife nicht bekannt ist !!
Danach deklarierst Du zwar ein Array, füllst es aber nicht!
Zudem hast Du hier ein Array mit integer-Werte, willst aber double einlesen und addieren !!

Deklariere also VOR dem Einlesen das Array (als double[] array ...) und packe dann in der for-Schleife die eingelesenen Werte jeweils in Array (array = scanner.nextDouble()😉

Gruß Klaus
 
Hallo RedWizard,

wie Klaus schon sagte ist dein Array nicht gefüllt. Daher 0.0 als Ergebnis.

In deiner for-Schleife:

Java:
for (int i = 1; i <= anzahl; i++){
System.out.print("Bitte geben Sie den " + i + ". Wert ein: ");
double messwert = scanner.nextDouble();
}

musst du deinem Array (was du vor der Schleife deklarieren musst) die Werte zuweisen. Das geht mit array[I] = wert;

Das nächste Mal poste deinen Code bitte in [code=Java] ... my code .. [/code] Tags. So kann man deinen Code besser zitieren / lesen 🙂

Gruß
Robert[/I]
 

Zurück
Oben