所以我有一个应该在我的数组中找到最高值的方法。 写如下:
static public int findIndexOfMax(int[] intList, int countOfInts)
{
int largest = intList[0];
for (int i = 1; i < intList.length; i++)
{
if (intList[i] > largest)
{
largest = intList[i];
}
}
return countOfInts;
}
我的问题是它不打印VALUE,它打印出最高值的LOCATION
输出的代码:
int indexLargestValue = findIndexOfMax( intList, countOfInts);
System.out.println("\nReq #3a: The largest value in the array is at array index " + indexLargestValue );
System.out.println("Req #3b: The largest values in the array is " + intList[ indexLargestValue ] );
我哪里错了?
最高值是113 .....
证明输出:
The largest value in the array is at array index 12
答案 0 :(得分:4)
您的问题是您要返回countOfInts
而不是largest
:
static public int findIndexOfMax(int[] intList, int countOfInts)
{
int largest = intList[0];
for (int i = 1; i < intList.length; i++)
{
if (intList[i] > largest)
{
largest = intList[i];
}
}
return largest; // <<== Here
}
如果这是您所需要的,请将findIndexOfMax
重命名为findMax
。
如果您需要找到位置,请按如下方式更改函数体:
int largest = 0;
for (int i = 1; i < intList.length; i++)
{
if (intList[i] > intList[largest])
{
largest = i;
}
}
return largest;
注意:两个版本都需要检查数组中是否至少包含一个值,以避免抛出异常。