mR.fLopPy
Erfahrenes Mitglied
Hallo,
ich habe eine Aufgabenstellung erhalten bei der es darum geht, dass ich den Median aus den Werten eines Arrays ausrechnen soll.
Laut der Angabe wird bei einer geraden Anzahl von Eingaben die sich in der Mitte befindlichen zwei Werte zusammengezählt mit einer Division durch 2 der Median berechnet, während bei einer ungeraden Anzahl an Eingaben lediglich der Wert aus dem Array ausgelesen werden muss, welcher sich in der exakten Mitte befindet. So wird beispielsweise bei einer Arraylänge von 7 die Stelle 4 des Arrays für die Bestimmung des Medians herangezogen.
Ich habe dies folgendermaßen versucht zu lösen und stoße dabei auf das Problem, dass die Stelle im Array stets die Falsche ist.
(Auszug vom Code)
Ausgehend davon, dass
müsste
ergeben, jedoch bekomme ich laut Debugger den Wert 4. Ebenso bekomme ich auch bei
Ich hoffe das ihr mich diesbezüglich aufklären könnt, wieso es laut dem Debugger zum Wert 5 und nicht 4 kommt.
Beste Grüße
mr.floppy
ich habe eine Aufgabenstellung erhalten bei der es darum geht, dass ich den Median aus den Werten eines Arrays ausrechnen soll.
Laut der Angabe wird bei einer geraden Anzahl von Eingaben die sich in der Mitte befindlichen zwei Werte zusammengezählt mit einer Division durch 2 der Median berechnet, während bei einer ungeraden Anzahl an Eingaben lediglich der Wert aus dem Array ausgelesen werden muss, welcher sich in der exakten Mitte befindet. So wird beispielsweise bei einer Arraylänge von 7 die Stelle 4 des Arrays für die Bestimmung des Medians herangezogen.
Ich habe dies folgendermaßen versucht zu lösen und stoße dabei auf das Problem, dass die Stelle im Array stets die Falsche ist.
(Auszug vom Code)
Java:
public class Median {
static Scanner readNum;
static int inputSizeFromArray;
static int temp;
static double median;
static int[] inputTable = new int[8];
inputTable = {1,2,3,4,5,6,7,8};
static void calcMedian() {
if (inputTable.length % 2 == 0) {
median = (inputTable[(inputSizeFromArray / 2) - 1] + inputTable[inputSizeFromArray / 2]) / 2;
} else {
median = inputTable[(inputSizeFromArray / 2)];
}
System.out.println("Folgende Werte befinden sich im Array: ");
for (int i : inputTable) {
System.out.print(i + ", ");
}
System.out.println("Der Median von diesen Werten lautet: " + median);
}
}
Ausgehend davon, dass
Code:
inputSizeFromArray = 8
müsste
Code:
inputTable[(inputSizeFromArray / 2) - 1] = 3
ergeben, jedoch bekomme ich laut Debugger den Wert 4. Ebenso bekomme ich auch bei
Code:
inputTable[inputSizeFromArray / 2] = 5
Ich hoffe das ihr mich diesbezüglich aufklären könnt, wieso es laut dem Debugger zum Wert 5 und nicht 4 kommt.
Beste Grüße
mr.floppy
Zuletzt bearbeitet: