[英]Java: 2D array minimum and maximum values
我正在開發這個程序來查找變量milesTracker 的最小值和最大值,並且已經成功進行了幾次測試,但是它用值{{-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);
}
}
錯誤:
// Start of area to be modified
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];
}
}
}
你初始化,
int maxMiles = 0;
然而你只更新maxMiles
,
if(milesTracker[i][j] > maxMiles)
在使用{{-5},{-93},{-253}}
迭代數組時,這些值都不大於maxMiles == 0
。 因此maxMiles
永遠不會更新。
嘗試在集合中任意聲明它
int maxMiles = milesTracker[0][0];
那么maxMiles
不能在集合之外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.