Das Programm soll von ein vorgegebenes Array ausgeben, höchste, niedrigste Zahl bestimmen (was auch funktioniert, deshalb hab ich unten die Methoden für Min. und Max weggelassen) und dass Array sortieren, nur irgendwie hab ich einen Denkfehler ganz unten im Sortieralgorithmus.
Die Schleife mit dem x läuft nämlich nur einmal durch.
Hier mein Programm:
Als Ausgabe erhalte ich:
Die Schleife mit dem x läuft nämlich nur einmal durch.
Hier mein Programm:
Code:
public class Hauptprogramm {
public static void main(String[] args) {
int[] data = { 23, 38, 14, -3, 0, 14, 9, 103, 0, -56 };
anzeigen("Auflistung unsortiert: " + auflisten(data));
anzeigen("Maximum ist:" + maximum(data));
anzeigen("Minimum ist:" + minimum(data));
int[] sdata = sortieren(data);
anzeigen("Auflistung sortierer:" + auflisten(sdata));
}
// Ausgaben
static void anzeigen(String text) {
System.out.println(text);
}
// Auflistung
static String auflisten(int[] array) {
String auflisten = " ";
for (int i = 0; i < array.length; i++) {
auflisten = auflisten + array[i] + " ,";
}
return auflisten;
}
// Sortieren
static int[] sortieren(int[] array) {
int temp = 0;
for (int x = 0; x < array.length; x++) {
for (int i = 0; i < (array.length -x ); i++) {
if (array[i] > array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
anzeigen(auflisten(array));
}
return array;
}
}
Als Ausgabe erhalte ich:
Code:
Auflistung unsortiert: 23 ,38 ,14 ,-3 ,0 ,14 ,9 ,103 ,0 ,-56 ,
Maximum ist:103
Minimum ist:-56
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Hauptprogramm.sortieren(Hauptprogramm.java:54)
at Hauptprogramm.main(Hauptprogramm.java:8)