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 hilft dir diese Seite hier weiter (Klick!)
  3. 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
  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 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
  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 Bekanntes Mitglied
    Wieso das denn?
     
  11. Flown
    Flown Administrator Mitarbeiter
    Wie lautet denn die gesamte Aufgabenstellung?
     
  12. Hinweis: Du möchtest Java lernen? Vielleicht hilft dir dieser Kurs hier weiter. Sichere dir hier den Zugriff auf umfangreiches Java-Know How und starte richtig durch!
Die Seite wird geladen...

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

ResourceBundle getStringArray Methode
ResourceBundle getStringArray Methode im Forum Java Basics - Anfänger-Themen
ArrayList ausgabe ohne Dopplung
ArrayList ausgabe ohne Dopplung im Forum Java Basics - Anfänger-Themen
Hilfe mit Socket Thread und ArrayList
Hilfe mit Socket Thread und ArrayList im Forum Netzwerkprogrammierung
Lottozahlen, Zufallszahlen im Array
Lottozahlen, Zufallszahlen im Array im Forum Hausaufgaben
Arrays Duplizieren
Arrays Duplizieren im Forum Java Basics - Anfänger-Themen
Thema: Ungeordnetes Array ordnen, Zahl einlesen und einordnen