再帰で実行される配列があり、配列の最小数を見つけます。プログラムを実行すると、(Assignment9.java:36) if (previousMin > numbers[endIndex]) and (Assignment9.java:20) double min = findMin(numbers, 0, numbers.length); で ArrayIndexOutOfBoundsException エラーが発生します。この問題が通常発生する理由はわかっていますが、コードの修正が見つかりません。プログラムを実行できないため、実際のコードが機能するかどうかはわかりません。助言がありますか..
import java.io.*;
import java.text.*;
public class Assignment9
{
public static void main(String[] args) throws IOException
{
int [] numbers = new int[100];
InputStreamReader streamR = new InputStreamReader(System.in);
BufferedReader inFile = new BufferedReader(streamR);
String reader = inFile.readLine();
double min = findMin(numbers, 0, numbers.length);
System.out.print ("The minimum number is " + min + ('\n'));
}
public static int findMin (int [] numbers, int startIndex, int endIndex)
{
if (startIndex == endIndex)
{
return numbers[startIndex];
}
else
{
double previousMin = findMin (numbers, startIndex, endIndex - 1);
if (previousMin > numbers[endIndex])
return numbers[endIndex];
else
return numbers[endIndex];
}
}