我试过切换值,数字,变量,所有的东西,似乎都不起作用。我对数组还很陌生,所以如果这是一个简单的修复,我道歉。
嵌套循环应该找到数组中的最小值,然后将其返回给主方法,但是,每次我只得到数组中的第一个数字。代码:
public static void main(String[] args) {
int[] arr = {2, 1, 4, 3, 6, 5, 8, 7};
int min;
min = findMin(arr);
System.out.println("Smallest value: " + min);
}
public static int findMin(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) ;
{
min = arr[i];
}
}
return arr[min];
}
4条答案
按热度按时间t2a7ltrp1#
代码中有两个问题,
1.从有
if
条件的行中删除分号,如果条件行被视为单个语句,则将分号放在该行的末尾1.此外,返回
min
而不是arr[min]
inkz8wg92#
应将此行
if(arr[i] < min);
替换为if(arr[i] < min)
以及
return arr[min];
与return min;
的关系4nkexdtk3#
我认为它应该返回“min”变量;如果数组中的最小值是100,代码就会出现编译错误,因为数组中没有100个值。
jjhzyzn04#
首先,你应该在某个时候使用length方法声明数组的长度,这样你就可以在for循环中引用它:
其次,代码应该返回最小值,而不是索引等于最小值的数组。