Hi,
ich soll ein Programm schreiben, das den kleinsten Index in einem Array findet bzw. den Index der zum kleinsten Wert im Array gehört.
Mein Programm sieht so aus:
Beim Debuggen habe ich herausgefunden, dass das Programm zwar den richtigen Index findet, aber dann wieder beide Indizes zurückzählt, so dass letztlich immer 0 als Ergebnis berechnet wird.
Die Konsolenausgabe sieht so aus:
3
0
Also in dem If-Statement wird noch die 3 ausgegeben, an die main-Methode wird allerdings 0 zurückgegeben, was ich nicht ganz verstehe.
Kann mir vielleicht jemand sagen, woran das liegt?
Gruß und danke im Voraus
ich soll ein Programm schreiben, das den kleinsten Index in einem Array findet bzw. den Index der zum kleinsten Wert im Array gehört.
Mein Programm sieht so aus:
Java:
public static void main(String[] args) {
double[] arr = { 5, 3, 8, 2, 4 };
System.out.println(minIndex(arr, 0, 4));
}
public static int minIndex(double[] arr, int startIndex, int endIndex) {
if (arr[startIndex] < arr[endIndex]) {
minIndex(arr, startIndex, endIndex-1);
}
if (arr[startIndex] > arr[endIndex]) {
minIndex(arr, startIndex+1, endIndex);
}
if (startIndex == endIndex) {
System.out.println(startIndex);
return startIndex;
}
return startIndex;
}
Beim Debuggen habe ich herausgefunden, dass das Programm zwar den richtigen Index findet, aber dann wieder beide Indizes zurückzählt, so dass letztlich immer 0 als Ergebnis berechnet wird.
Die Konsolenausgabe sieht so aus:
3
0
Also in dem If-Statement wird noch die 3 ausgegeben, an die main-Methode wird allerdings 0 zurückgegeben, was ich nicht ganz verstehe.
Kann mir vielleicht jemand sagen, woran das liegt?
Gruß und danke im Voraus