我正在研究这个程序来查找变量里程数的最小值和最大值,并且已经成功进行了一些测试,但是它使用值{{-5},{ - 93},{-259}}进行了测试
注意:我无法编辑注释区域之外的任何内容,但是,我可以在注释区域内的任何位置添加更多行。
我很感激帮助。
我的代码:
import java.util.Scanner;
public class ArraysKeyValue {
public static void main (String [] args) {
final int NUM_ROWS = 2;
final int NUM_COLS = 2;
int [][] milesTracker = new int[NUM_ROWS][NUM_COLS];
int i = 0;
int j = 0;
int maxMiles = 0; // Assign with first element in milesTracker before loop
int minMiles = 0; // Assign with first element in milesTracker before loop
milesTracker[0][0] = -10;
milesTracker[0][1] = 20;
milesTracker[1][0] = 30;
milesTracker[1][1] = 40;
// Start of area to be modified
for(i=0;i<NUM_ROWS;++i){
for(j=0;j<NUM_COLS;++j){
if (milesTracker[i][j]<minMiles){
minMiles = milesTracker[i][j];
}
else if (milesTracker[i][j] > maxMiles){
maxMiles = milesTracker[i][j];
}
}
}
// End of area to be modified
System.out.println("Min miles: " + minMiles);
System.out.println("Max miles: " + maxMiles);
}
}
错误:
答案 0 :(得分:1)
maxMiles = milesTracker[0][0];
minMiles = milesTracker[0][0];
for(i=0;i<NUM_ROWS;++i){
for(j=0;j<NUM_COLS;++j){
if (milesTracker[i][j]<minMiles){
minMiles = milesTracker[i][j];
}
else if (milesTracker[i][j] > maxMiles){
maxMiles = milesTracker[i][j];
}
}
}
答案 1 :(得分:0)
你初始化,
int maxMiles = 0;
但您只更新了maxMiles
,
if(milesTracker[i][j] > maxMiles)
在使用{{-5},{-93},{-253}}
迭代数组时,这些值都不会大于maxMiles == 0
。因此maxMiles
永远不会更新。
尝试在集合
中任意声明int maxMiles = milesTracker[0][0];
然后maxMiles
不能超出集合范围。