以下是我的代码。它一直返回4但最小的值是3.如何让它读取3而不是4?
public static int getMinIndex(int[]a, int index) {
int min=a[index];
int minIndex=index;
for(int i=index+1;i<a.length;i++) {
if(a[i]<min) {
min=a[i];
minIndex=i;
}
}
return minIndex;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={11,4,8,6,3,10};
int min=ch7Codes.getMinIndex(a,1);
System.out.println(min);
}
}
答案 0 :(得分:4)
有更好的方法来获得数组的最小值,但在你的情况下,问题是你通过数组的方式,它从0开始而不是1,你没有得到miniimun值,你得到的那个向量中的最小值wchich的索引是4,相应的值是3
public static int getMinIndex(int[]a, int index){
int min=a[index];
int minIndex=index;
for(int i=index+1;i<a.length;i++){
if(a[i]<min){
min=a[i];
minIndex=i;
}
}
return min; // with this you return the minimun value
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={11,4,8,6,3,10};
int min=ch7Codes.getMinIndex(a,0);
System.out.println(min);
}
答案 1 :(得分:1)
解决此问题时需要注意的一些事项
这是返回数组中最小值的代码
public static int getMinIndex(int[]a) {
// We'll say the first number in the array is the smallest
int min = a[0];
// Loop through every element. Since arrays start at 0, we -1 from length
for(int i=0; i < a.length - 1; i++){
// If a[i] is a smaller number, store that number
if(a[i] < min){
min=a[i];
}
}
// Return the smallest number
return min;
}
我从方法中删除了index参数,因为它不需要。您当前的方法返回最小数字的索引(3位于数组的索引4处。)因此,快捷方式也可以执行
System.out.println(a[min]);