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. Vielleicht helfen dir diese Grundlagen hier weiter: (hier klicken)
  3. truesoul
    truesoul Aktives 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
  4. 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
  5. JStein52
    JStein52 Bekanntes Mitglied
    Und welches der Array-Elemente soll durch das neu eingegebene Element ersetzt werden ?
     
  6. truesoul
    truesoul Aktives 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
  7. Alpinwhite
    Alpinwhite Mitglied
    Das nächstgrössere. Das hatte ich nicht erwähnt.
     
  8. JStein52
    JStein52 Bekanntes Mitglied
    Dann siehe @truesoul

    Edit: und was wenn das letzte Element 15 ist und die neue Eingabe ist 16 ?
     
  9. Alpinwhite
    Alpinwhite Mitglied
    Dann soll das Programm abgebrochen werden.
     
  10. truesoul
    truesoul Aktives Mitglied
    Wieso das denn?
     
  11. Flown
    Flown Administrator Mitarbeiter
    Wie lautet denn die gesamte Aufgabenstellung?
     
  12. Hast du dir unsere Java-Grundlagen hier schon gesichert? *Klick*
Die Seite wird geladen...

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

Array mit Zahlen die durch 3 und 5 teilbar sind erstellen
Array mit Zahlen die durch 3 und 5 teilbar sind erstellen im Forum Java Basics - Anfänger-Themen
Auf Array einer anderen Klasse zugreifen.
Auf Array einer anderen Klasse zugreifen. im Forum Java Basics - Anfänger-Themen
Array
Array im Forum Java Basics - Anfänger-Themen
In einer Methode einen Array zurückgeben
In einer Methode einen Array zurückgeben im Forum Java Basics - Anfänger-Themen
In ArrayList suchen
In ArrayList suchen im Forum Java Basics - Anfänger-Themen
Thema: Ungeordnetes Array ordnen, Zahl einlesen und einordnen