二维数组中的最小值和最大值 java
min and max value in 2d array java
我想输出二维数组的最大值和最小值。 Max 运行良好,但 min 始终输出零,即使 array.I 中没有零,将 Math.random()
设置为 99,以防止在此示例中数组中获得零的机会较小。完整代码如下:
public class e {
public static void main(String[] args) {
int a[][] = new int [5][5];
int l = a[0][0];
int m = a[0][0];
int i,j,r,k;
for(i=0;i<a.length;i++) //
for(j=0;j<a[i].length;j++){ // 2d array random number generator
a[i][j] =(int)(Math.random()*99); //
}
for(i=0;i<a.length;i++){ //
for(j=0;j<a[i].length;j++) //
// create 2d array and output it
System.out.print(a[i][j] + "\t"); //
System.out.println(); //
}
System.out.println("\t");
for(r=0;r<a.length;r++){ //
for(k=0;k<a.length;k++) //
if(a[r][k] < m){ // finds a min value
m = a[r][k]; //
}
}
System.out.println("\t"); //
for(i=0;i<a.length;i++){ //
for(j=0;j<a.length;j++) // finds a max value
if(a[i][j] > l){ //
l = a[i][j]; //
}
}
System.out.println("min value is " + m); //outputs min value
System.out.println("max value is " + l); // outputs max value
}
}
由于您在 a
中选择随机值的方式,不会有任何值小于零 - 但也不能保证任何值都恰好为零。但是,您将 m
初始化为零,因为这是数组元素的默认值;没有比这更小的了,所以答案总是零。
您应该在标记为 "finds a min value" 的块中开始外部 for 循环之前立即初始化 m = a[0][0]
,即
m = a[0][0];
for(r=0;r<a.length;r++){ //
for(k=0;k<a.length;k++) //
if(a[r][k] < m){ // finds a min value
m = a[r][k]; //
}
}
或者,您可以设置 m = Integer.MAX_VALUE
(和 l = Integer.MIN_VALUE
),因为保证它们的值分别小于和大于它们。
我想输出二维数组的最大值和最小值。 Max 运行良好,但 min 始终输出零,即使 array.I 中没有零,将 Math.random()
设置为 99,以防止在此示例中数组中获得零的机会较小。完整代码如下:
public class e {
public static void main(String[] args) {
int a[][] = new int [5][5];
int l = a[0][0];
int m = a[0][0];
int i,j,r,k;
for(i=0;i<a.length;i++) //
for(j=0;j<a[i].length;j++){ // 2d array random number generator
a[i][j] =(int)(Math.random()*99); //
}
for(i=0;i<a.length;i++){ //
for(j=0;j<a[i].length;j++) //
// create 2d array and output it
System.out.print(a[i][j] + "\t"); //
System.out.println(); //
}
System.out.println("\t");
for(r=0;r<a.length;r++){ //
for(k=0;k<a.length;k++) //
if(a[r][k] < m){ // finds a min value
m = a[r][k]; //
}
}
System.out.println("\t"); //
for(i=0;i<a.length;i++){ //
for(j=0;j<a.length;j++) // finds a max value
if(a[i][j] > l){ //
l = a[i][j]; //
}
}
System.out.println("min value is " + m); //outputs min value
System.out.println("max value is " + l); // outputs max value
}
}
由于您在 a
中选择随机值的方式,不会有任何值小于零 - 但也不能保证任何值都恰好为零。但是,您将 m
初始化为零,因为这是数组元素的默认值;没有比这更小的了,所以答案总是零。
您应该在标记为 "finds a min value" 的块中开始外部 for 循环之前立即初始化 m = a[0][0]
,即
m = a[0][0];
for(r=0;r<a.length;r++){ //
for(k=0;k<a.length;k++) //
if(a[r][k] < m){ // finds a min value
m = a[r][k]; //
}
}
或者,您可以设置 m = Integer.MAX_VALUE
(和 l = Integer.MIN_VALUE
),因为保证它们的值分别小于和大于它们。