Median berechnen, Benutzereingabe Problem!

felix6494

Mitglied
Hi ich habe ein kleines Problem für dass ich bis jz per google noch keine Lösung gefunden habe.

Vorher mal mein code nachher mein Problem/Wunschlösung

Java:
import java.util.*;

public class median {

public	static void main(String[] args) {
	
	
	
		Scanner sc = new Scanner (System.in);
		int eingabe  = sc.nextInt();
		int[] werteingabe = {eingabe};
		
		System.out.println(werteingabe.length);
		System.out.println (Arrays.toString(werteingabe));
		System.out.println("Nun werden wir unseren Array sortieren");
		Arrays.sort(werteingabe);
		System.out.println (Arrays.toString(werteingabe));
		System.out.println("Nun berechnen wir den Median");
		int middle = werteingabe.length/2;  // subscript of middle element
	    
	       System.out.println ((werteingabe[middle-1] + werteingabe[middle]) / 2.0);
	    }
			
			
		}

Wie man seht geht es darum den Median von Zahlen berrechnen zu lassen, aber irgendwie funktioniert das mit der Benutzereingabe nicht so wie ich mir das vorgestellt habe =/. Wie kann ich den Array per Benutzereingabe füllen lassen? denn ansonsten gibt er mir 1 2 3 nur als eine Zahl aus und nicht als 3 wie ich das gerne gehabt hätte.
Ich hoffeihr könnt mir dabei helfen!

mfg felix
 

nrg

Top Contributor
probiers doch mal mit einer Schleife (einfach so in Browser getippt):

Java:
private static Scanner sc = new Scanner (System.in);
//.....
    int[] werteingabe = new int[readInt("Geben Sie die Anzahl der Zahlen an >")];
    for (int i = 0; i < werteingabe.length; i++) {
        werteingabe[i] = readInt("Geben Sie die " + (i + 1) + "(s)te Zahl ein >");
    }
//.....

private static int readInt(String prompt) {
    System.out.print(prompt);
    return sc.nextInt();
}
 

felix6494

Mitglied
Ich hätte mir das so vorgestellt das der benutzer in der Kommandozeile irgendwelche werte eintippen kann, das hat ja dann mit einer Schleife nichts zu tun oder?
 

beastofchaos

Bekanntes Mitglied
Und die Musterlösung wäre dann noch, dass du eine ArrayList<Integer> benutzt und man unendlich viele Zahlen eingeben kann und jedes mal dahinter den sich ergebenen Median sieht.

Oder man säubert bei jeder neuen Eingabe die Konsole(um alte Ausgaben zu löschen), gibt jede vorher eingegebene Zahl aus und dann sowas wie "Median: 30.543". Wenn du halt die Konsole vorher "sauber" machst, wenn du ne Zahl eintippst, ändert sich nur der Median und es wird nicht "nochmal" geschrieben (eigentlich schon, aber das sieht der User nicht, da er nicht sieht, wie alles gelöscht und neu geschrieben wird ;)

Gruß, Thomas
 

njans

Top Contributor
Du kannst es auch genauso lassen, wie du es jetzt hast.
Wenn die Benutzereingabe z.B. "10 15 6 7 99 123" ist, dann kannst du mittels
Java:
String stringZahlen = werteingabe.split(" ");
Ein String array erzeugen.

Java:
		// Mach ein Array aus der Eingabe
		String[] stringZahlen = werteingabe.split(" ");
		// Erstelle ein leeres int array 
		int[] zahlen = new int[stringZahlen.length]; 
		
		// Gehe über jeden String und parse ihn zum int
		for (int index = 0; index < stringZahlen.length; index++ )
		{
		  // Exceptionhandling fehlt hier noch :)
		  zahlen [index] = Integer.parseInt(stringZahlen[index]);
		}
		
		Arrays.sort(zahlen); // Sortiere das Array
		
		// In der Mitte findet sich nun der Median
		// Ich bin mir nicht sicher, wie es bei geraden Anzahlen von Eingabezahlen aussieht.
		// Ist der Median immer die Mitte abgerundet, oder aufgerundet?
		System.out.println("Der Median ist " + zahlen[zahlen.length/2] );
 

felix6494

Mitglied
Also mal vorne weg ich bin ja wirklich Programmieranfänger und plage mich jz schon circa 1 stunde um da eine funktionistüchtige schleife einzubauen und irgendwie wirft mir eclipse immer wieder fehlereldungen zurück ::mad:

Java:
	public static void main(String[] args) {

		Scanner sc = new Scanner (System.in);
		String eingabe  = sc.next();
		
		// Eingabe in einen Array speichern
		int[] werteingabe = new int[3];
	   
		for (int i = 0; i < 3; i++) {
	        werteingabe[i] = ?? ("Geben Sie die " + (i + 1) + "(s)te Zahl ein >");
	    }
		}

ich hab jz nochmal neu begonnen und mir sind da ein paar sachen offen. in der for schleife, was muss ich da für = ?? annehmen? Wird das dann mit dieser Schleife überhaupt in den Array so mit ";" einsortiert? es hapert bei mir einfach immer an den gottverdammten schleifen ???:L wut

ich hoffe ihr könnt mir nochmal helfen
 

setsuna9

Mitglied
nur mal schnell geschrieben, ohne auf Schönheit zu achten...
Java:
import java.util.Arrays;
import java.util.Scanner;

public class Median {
	public static int MAXANZAHL = 3;
	public static void main(String[] args) {
		 
        Scanner sc = new Scanner (System.in);
        // Eingabe in einen Array speichern
        int[] werteingabe = new int[MAXANZAHL];
       
        for (int i = 0; i < MAXANZAHL; i++) {
        	System.out.print("Geben Sie die " + (i + 1) + "(s)te Zahl ein >");
        	int eingabe  = sc.nextInt();
            werteingabe[i] = eingabe; 
        }
        System.out.println("Median: " + median(werteingabe));
    }

	private static double median(int[] werteingabe) {
		Arrays.sort(werteingabe); 		
		if (werteingabe.length % 2 == 1){
			return werteingabe[werteingabe.length / 2 ];
		} else {
			return 0.5 * (werteingabe[(werteingabe.length / 2 - 1 )] + werteingabe[(werteingabe.length/2)]); 
		}
	}
}
 

njans

Top Contributor
Java:
return 0.5 * (werteingabe[(werteingabe.length / 2 - 1 )] + werteingabe[(werteingabe.length/2)]);
Meh? Ich meinte mich zu erinnern, dass der Median bei einer Liste von geordneten zahlen die Mitte ist, nicht aber das arithmetische Mittel. Demnach wäre diese Zeile kein Median.
 

beastofchaos

Bekanntes Mitglied
Die erste Abfrage schaut noch, ob die Länge eine ungerade Zahl ist, wenn ja, nimmt er den mittleren Wert. Was für mich aber grad kein Sinn ergibt.
Der Median von 1, 2, 6, 7, 8 ist doch nicht "6", oder? Er müsste iwo zwischen 6 und 7 liegen. Er berechnet aber auch nicht den Mittelwert hier, was mich verwirrt.
Wüsst mal gerne, wie man überhaupt den Median berechnet, konnte grad nur bei wiki verstehen, was er genau ausdrückt, aber die Formel da verwirren meine vom Tag belastete Denk-CPU :D

Okay, vll verstehe ich den Median auch nicht richtig. Kann mir einer ein gutes Beispiel dafür nennen, falls das nicht zu viel verlangt ist :)

Geht es vll beim Median doch nur darum, dass die Zahlen darunter genauso viele, wie die darüber sind? Dann hätte er nämlich die richtige Rechnung.
 
Zuletzt bearbeitet:

njans

Top Contributor
Der Median von 1 , 2 , 3 , 4 , 5 ist 3.
Problem ist, wenn die Anzahl der Zahlen gerade ist. Dann muss man sich entscheiden, wie man den Median definiert.
Entweder floor(anzahl/2) oder ceil(anzahl/2). Java bietet ja automatisch floor an, daher wäre das praktischer.
 
G

Gast2

Gast
Der Median einer sortierten Stichprobe ist einfach der Wert der in der Mitte steht. Bei ungerader Anzahl an Werten ist es exakt der Wert in der Mitte, bei gerader Anzahl an Werten ist es der Mittelwert der beiden mittleren Werte.

Der Median von 1, 2, 6, 7, 8 ist doch nicht "6", oder?
Doch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Median berechnen Java Basics - Anfänger-Themen 17
J Array Median bestimmen Java Basics - Anfänger-Themen 6
J Median-Berechnung von 2D-Teilarrays Java Basics - Anfänger-Themen 56
B Berechnung Median mit Methode Java Basics - Anfänger-Themen 7
4 Median ohne Array Rausbekommen Java Basics - Anfänger-Themen 8
Screen Wie geringste Absolutdifferenz zum Median bestimmen? Java Basics - Anfänger-Themen 8
StrikeTom Median ausrechnen Java Basics - Anfänger-Themen 3
A Median, Standardabweichung Java Basics - Anfänger-Themen 5
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
V Mittelwert berechnen Java Basics - Anfänger-Themen 31
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
P Quadrate berechnen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben