Ungeordnetes Array ordnen, Zahl einlesen und einordnen

Diskutiere Ungeordnetes Array ordnen, Zahl einlesen und einordnen im Java Basics - Anfänger-Themen Forum; Beispiel (Benutzereingaben in grün): Ausgabe: Unsortiert: [16,14,7,6,1,13,12,9,3,0] Ausgabe: Sortiert: [0,1,3,6,7,9,12,13,14,16] Ausgabe: Welche...

  1. Alpinwhite
    Alpinwhite Mitglied
    Beispiel (Benutzereingaben in grün):
    Ausgabe: Unsortiert: [16,14,7,6,1,13,12,9,3,0]
    Ausgabe: Sortiert: [0,1,3,6,7,9,12,13,14,16]
    Ausgabe: Welche positive ganze Zahl wollen Sie dem Array hinzufügen?
    Eingabe: 15
    Ausgabe: 16 wurde mit 15 ersetzt.
    Ausgabe: Sortiert mit neuem Element: [0,1,3,6,7,9,12,13,14,15]

    Hallo, ich habe das Programm bis zur Benutzereingabe fertig, dort komme ich nicht mehr weiter. Hat jemand einen Tipp?

    Code (Java):

    import java.util.Random;

    public class Array {

        public static void main(String[] args) {
     
        int zufallsZahlen[] = new int[10];
        int z=0;
        int tobeSorted = 0;
        int benutzerEingabe = 0;
     
        System.out.print("Unsortiert: [");
             
        for(int i=0;i<zufallsZahlen.length;i++){
            zufallsZahlen[i] = (int) (Math.random()*20);
            tobeSorted=zufallsZahlen[i];
            z=i-1;
     
            if(i==zufallsZahlen.length-1){
                    System.out.print(zufallsZahlen[i]);
            }
                else{
                    System.out.print(zufallsZahlen[i]+",");
                }
     
         
         
                while(( z >=0) && (tobeSorted < zufallsZahlen[z])){
                    zufallsZahlen[z+1] = zufallsZahlen[z];
                    z= z-1;
         
            }
            zufallsZahlen[z+1] = tobeSorted;
        }  
            System.out.println("]");
            System.out.print("Sortiert: [");
            for(int i=0; i<zufallsZahlen.length; i++){
            System.out.print(zufallsZahlen[i]+",");
            }
            System.out.println("]");
            System.out.print("Welche positive ganze Zahl wollen Sie dem Array hinzufügen?");
            benutzerEingabe=Input.readInt();
         
            if(benutzerEingabe>=0 && benutzerEingabe<=zufallsZahlen[9]){
             
            }
        }

    }
     
     
  2. truesoul
    truesoul Bekanntes Mitglied
    Hallo.

    Wo liegt denn das Problem?

    Wenn du einem Array ein Wert hinzufügen musst, muss das Array vergrößert werden und der Wert muss hinzugefügt werden.

    Es gibt mehrere Möglichkeiten dies zu Bewerkstelligen.

    1. Entweder du suchst die richtige Position wo der Wert hin soll und die Werten danach nach hinten verschieben
    2. Oder fügst den neuen Wert hinzu und lässt nochmal neu sortieren.

    Eine Methode um ein Array zu kopieren:
    Code (Java):
    System.arraycopy(quelle, 0, result, 0);
    Warum das
    Code (Java):
    benutzerEingabe<=zufallsZahlen[9]
    ?
     
    Zuletzt bearbeitet: 20. Nov. 2017
  3. Alpinwhite
    Alpinwhite Mitglied
    Code (Java):
    if(benutzerEingabe>=0 && benutzerEingabe<=zufallsZahlen[9]){
               
                for (int i=0; i<zufallsZahlen.length; i++){
               
                    if(benutzerEingabe>=zufallsZahlen[i] && benutzerEingabe<=zufallsZahlen[i+1]){
                   
                        benutzerEingabe = zufallsZahlen[i];
     
    Zuletzt bearbeitet: 20. Nov. 2017
  4. JStein52
    JStein52 Bekanntes Mitglied
    Und welches der Array-Elemente soll durch das neu eingegebene Element ersetzt werden ?
     
  5. truesoul
    truesoul Bekanntes Mitglied
    Na dann geh doch durch das Array und schau wo der Wert hinpassen kann?
    So wie ich es verstehe soll die Zahl nach der größten "kleineren" Zahl hinkommen.

    Code (Text):
    Wenn array[i] > eingabe dann array[i-1]  = eingabe ausser wenn i == 0 dann array[i] = eingabe
    EDIT:

    Dies sollte man natürlich auch beachten :D
     
    Zuletzt bearbeitet: 20. Nov. 2017
  6. Alpinwhite
    Alpinwhite Mitglied
    Das nächstgrössere. Das hatte ich nicht erwähnt.
     
  7. JStein52
    JStein52 Bekanntes Mitglied
    Dann siehe @truesoul

    Edit: und was wenn das letzte Element 15 ist und die neue Eingabe ist 16 ?
     
  8. Alpinwhite
    Alpinwhite Mitglied
    Dann soll das Programm abgebrochen werden.
     
  9. truesoul
    truesoul Bekanntes Mitglied
    Wieso das denn?
     
  10. Flown
    Flown Administrator Mitarbeiter
    Wie lautet denn die gesamte Aufgabenstellung?
     
Die Seite wird geladen...

Ungeordnetes Array ordnen, Zahl einlesen und einordnen - Ähnliche Themen

Array ertellen bei model.put
Array ertellen bei model.put im Forum Allgemeine Java-Themen
Substring Array
Substring Array im Forum Java Basics - Anfänger-Themen
ArrayList Name mit String erstellen
ArrayList Name mit String erstellen im Forum Java Basics - Anfänger-Themen
Objekt Array führt zum NullPointerException
Objekt Array führt zum NullPointerException im Forum Java Basics - Anfänger-Themen
Eigener Iterator soll mehrdimensionales Array durchlaufen
Eigener Iterator soll mehrdimensionales Array durchlaufen im Forum Java Basics - Anfänger-Themen
Thema: Ungeordnetes Array ordnen, Zahl einlesen und einordnen