Ich schreibe gerade ein Programm, das einem die Bestenliste (Highscore) von verschiedenen Spielern ausgibt.
Der Beste ist der mit den meisten Punkten (0 - unendlich mit x € Z). Die Punkte werden als int aus Dateien in zufälliger Reihenfolge eingelesen. Die besten 10 Spieler werden angezeigt. Darunter können theoretisch alle die gleiche Punktezahl haben.
Ich dachte daran, die Punkte in eine Tabelle „int punkte[10000]={0};“ einzulesen. Dies ist aber extrem kompliziert, besonders beim Sortieren, da jedes mal alle höheren Werte verschoben werden müssten.
Hat einer von euch schon mal so ein Sortierprogramm gemacht? Wie geht das am einfachsten?
Ich dachte daran, die Punkte in eine Tabelle „int
punkte[10000]={0};“ einzulesen.
Wieso willst du das denn überhaupt machen? Erstell ein int-Array mit 10 Stellen und initialisiere alle Stellen mit 0. Das Array enthält dann im folgenden die Spielstände der jeweils zehn bis dato bekannten Spieler.
Dann liest du die Punkte der einzelnen Spieler ein. Wenn der eingelesener Wert höher ist, als der kleinste Wert im Array, dann hat der gerde gelesene Spieler offensichtlich einen höheren Punktestand erreicht wie der niedrigste der aktuellen Top10. Daher ersetzt du diesen kleinsten Wert einfach durch den gerade eingelesenen.
Fertig.
Der Beste ist der mit den meisten Punkten (0 - unendlich mit x
€ Z).
Bis unendlich kann schon mal nicht sein!
Die Punkte werden als int aus Dateien in zufälliger
Reihenfolge eingelesen.
Ein int hat nur einen begrenzten Bereich.
Die besten 10 Spieler werden
angezeigt. Darunter können theoretisch alle die gleiche
Punktezahl haben.
Ich dachte daran, die Punkte in eine Tabelle „int
punkte[10000]={0};“ einzulesen. Dies ist aber extrem
kompliziert, besonders beim Sortieren, da jedes mal alle
höheren Werte verschoben werden müssten.
Man kann auch absteigend sortieren, dann sind die ersten 10 Plätze im Array immer die besten 10.