Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo...
Erst mal danke für eure Hilfe in der letzten Aufgabe.
Würde freiwillig auch gar nicht fragen, aber eben, ich muss Programmieren lernen, Berufsschule halt...
Diesmal geht es darum, eine Anzahl Zahlen zu sortieren, nach dem Prinzip, dass immer zwei Zahlen verglichen werden.
Habe mir den Aufbau des Programmes gut überlegt und war überzeugt, dass es so funktionieren würde.
Tja, dann habe ich cecodet.
Und es geht leider doch nicht.
Weiss vielleicht jemand was ich falsch gemacht habe?
Hier der Code:
Code:
/* Definition der Variablen */
int anzahl; /* Definiert die Anzahl der Zahlen die sortiert werden sollen */
int i; /* Zähler 1 */
int j; /* Zähler 2 */
int hilfe; /* Variable für die Zwischenspeicherung von Werten */
/* Eingabe der Anzahl Zahlen */
System.out.print ("Bitte geben Sie die Anzahl der zu sortierenden Zahlen ein: ");
anzahl=ReadInt();
/* Definition des Arrays */
int[] zahl=new int[anzahl];
/* Einlesen der Werte ins Array */
for (i=0; i<anzahl; i++) {
System.out.print ("Bitte geben Sie die "+i+". zu sortierende Zahl ein: ");
zahl[i]=ReadInt();
}
/* Sortieren der Zahlen */
for (i=0; i<anzahl; i++) {
for (j=0; j<anzahl; j++) {
if (zahl[j]>zahl[j++]) {
hilfe=zahl[j];
zahl[j]=zahl[j++];
zahl[j++]=hilfe;
}
}
}
/* Ausgabe der sortierten Zahlen */
for (i=0; i<anzahl; i++) {
System.out.print (zahl[i]+", ");
}
Guck dir an wie ich es gelöst habe. Du brauchst keine neue Variable zu definieren, sondern mußt die Stellen im Dreieckstausch, bei denen die Variable j inkrementiert wird, durch j +1 ersetzen.
Ein paar generelle Tips:
- deklariere Variablen immer erst an der Stelle an der du sie auch wirklich brauchst. Globalevariablen als Zähler in For-Schleifen sind tödlich.
- Informiere dich genau über den zu implementierenden Algorithmus z.b. hier http://de.wikipedia.org/wiki/Bubblesort
hm, variablen an der stelle deklarieren an dem du sie brauchst. naja, ist mir auch schon eingefallen...
aber unser lehrer lässt das nicht zu...
schlimm, nicht?
jedenfalla darf ich das nicht, obwohl ich weiss dass es sauberer wäre.
habe deine variante umgesetzt, funktioniert immer noch nicht richtig, diesmal ein fehler beim kompilieren, den ich nicht finde. anscheinend habe ich einen denkfehler gemacht beim zähler, da ein array ja bei 0 beginnt...?
du bist genial! hat geklappt...
jetzt nur noch struktogramm anpassen und drucken ;-)
liebe grüsse und vielen dank!
andy