查找milesTracker 中的最大值和最小值。将最大值分配给 maxMiles,将最小值分配给 minMiles。
例如:如果输入是:
-10 20 30 40
输出为:
Min miles: -10
Max miles: 40
这就是我所拥有的。
import java.util.Scanner;
public class ArraysKeyValue {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
final int NUM_ROWS = 2;
final int NUM_COLS = 2;
int [][] milesTracker = new int[NUM_ROWS][NUM_COLS];
int i;
int j;
int maxMiles; // Assign with first element in milesTracker before loop
int minMiles; // Assign with first element in milesTracker before loop
for (i = 0; i < milesTracker.length; i++){
for (j = 0; j < milesTracker[i].length; j++){
milesTracker[i][j] = scnr.nextInt();
}
}
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];
}
if (milesTracker[i][j] > minMiles){
maxMiles = milesTracker[i][j];
}
}
}
System.out.println("Min miles: " + minMiles);
System.out.println("Max miles: " + maxMiles);
}
}
我只能编辑这部分:
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];
}
if (milesTracker[i][j] > minMiles){
maxMiles = milesTracker[i][j];
}
}
}
已通过以下测试:
使用输入进行测试:-10 20 30 40
你的输出
Min miles: -10
Max miles: 40
这个是正确的^
-----
使用输入进行测试:73 0 50 12
输出不同。请参阅下面的亮点。
你的输出
Min miles: 0
Max miles: 12
预期产量
Min miles: 0
Max miles: 73
-----
使用输入进行测试:-5 -93 -259 -82
输出不同。请参阅下面的亮点。
你的输出
Min miles: -259
Max miles: -82
预期产量
Min miles: -259
Max miles: -5
我不太确定我做错了什么。我看到其他人发布了这个问题,但它对我不起作用,即使在响应中实现了代码之后也是如此。
在最里面的
if
循环内的第二个for
中,您应该比较当前值是否大于您到目前为止找到的maxMiles
的值,而不是minMiles
。
所以改变这个:
if (milesTracker[i][j] > minMiles){
maxMiles = milesTracker[i][j];
对此:
if (milesTracker[i][j] > maxMiles){
maxMiles = milesTracker[i][j];