Sortierung von Zahlen

kaiovaz

Mitglied
Hey, bin neu hier. Vielleicht kann mir jemand mit meiner Code helfen. Es sollen 10 Zahlen eingelesen werden. Im Falle der Eingabe einer negativen Zahl soll das erneute Einlesen einer positvien Zahl ermöglicht werden.

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

    int[] unsorted = new int [10];
    int i;
    i = 0;

    TextIO.putln("Geben Sie 10 positive Int-Zahlen ein:" );

    while(true){
      int x;
      x=TextIO.getlnInt(); //Zahl einlesen

      if (x > 0){
        unsorted [i] = x;
        i++;
      }
      else
        TextIO.putln("Fehler");
    }

// ich weis net was hier falsch sein soll das zeigt immer an , dass for irgendwie net geht

    for (int k = 0; k < 10; k++) {
      TextIO.putln(unsorted [k] + " ");
    }
  }// end main
} // end class
 
Zuletzt bearbeitet von einem Moderator:
Hey, ich denke mal du nutzt Eclipse und der sagt dir das die Zeile [JAVA=24]for (int k = 0; k < 10; k++) {[/code] nicht erreichbar ist. Das stimmt ja auch weil du vorher eine while schleife mit der Bedienung true hast. Das ist ja eine Undenklich-Schfreife. Du musst da eine Abbruchbedinung einbauen oder deine while Bedienung überdenken.
 
das ist nicht in erste Linie eine Frage der Technik, sondern des fachlichen Inhalts,
wie oft soll wiederholt werden, wann warum Abbruch?

> Geben Sie 10 positive Int-Zahlen ein:

hmm, ok, das sagt ja was aus, fällt dir dazu dann nichts ein?,
du könntest die while-Schleife laufen lassen bis i einen gewissen Wert erreicht hat..
 
gut, das habe ich zum Teil gefragt, aber dürfte doch wohl klar geworden sein, dass das schon klar ist,
dein Posting enthält insofern nichts neues zur Lage

while(Bedingung) lautet das Konstrukt, in der Bedingung musst du prüfen, ob das gewünschte erreicht ist, wie gesagt z.B. abhängig von i
 
hey, danke das problem habe ich gelöst(for schleife benutzt), kannst du jetzt mein fehler hier noch finden.
Ich soll mein array nach dem kleinsten Element durchsuchen..

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


int[] unsorted = new int [10];
int x , x1;
x1 = x = 0;

TextIO.putln("Geben Sie 10 positive Int-Zahlen ein:" );

for (int i = 0; i < unsorted.length; i++){
//while ( x < unsorted.length); {

	x=TextIO.getlnInt(); //Zahl einlesen


	if (i < 0){
	  TextIO.putln("Geben Sie bitte positive Int-Zahlen ein:" );
	  x=TextIO.getlnInt(); //Zahl einlesen
       	  unsorted [i] = x;
	  x1++;

	}

    };



//int minVal = unsorted [0];
int min = Integer.MAX_VALUE;


for (int k = 0; k< unsorted.length; ++k){
	if (unsorted [k]<min ){
		min = unsorted [k];
	}
}
System.out.print("Minimum: " + min);




int sorted [] = new int [10];

sorted = unsorted;


}// end main
} // end class
 
Zuletzt bearbeitet:
wahrscheinlich ist dann eines der Array-Elemente 0, ausgeben? aber ich sehe noch nichts genaues

edit:
> if (i < 0){
??

wenn nicht 'Geben Sie bitte positive Int-Zahlen ein' und eine zweite Eingabe kommt, wird schon gar nicht im Array gespeichert?

da muss wirklich in Ruhe gearbeitet werden, ich möchte keine Last-Minute-Abgaben durch fertigen Code oder so unterstützen
(mal abgesehen davon dass ich damit allgemein geizig bin, aber ist jedenfalls kein positives Kriterium)
 
Zuletzt bearbeitet von einem Moderator:
Ich glaube dein neuese Beispiel hat noch paar Fehler. Dabei ist es egal ob du 10 positive oder 10 negative werte eingibst, nach 10 eingaben wird immer das Minimum gesucht. Ich würde wieder die while schleife nehmen und einer int als index definieren die den wert von 0 hat.Die bedinung in der whle-schleife ist das der index kleiner deinem int[].length ist. Wenn eine Korrekte Eingabe gemacht wurde, den wert an die index stelle im int[] setzen und den index um eins erhöhen.

Du kannst dir auch mit Arrays.toString(unsort). dein int[] auf der Konsole ausgeben.
 

Zurück
Oben