[英]min and max value in 2d array java
我想輸出二維數組的最大值和最小值。 Max工作得很好,但是即使數組中沒有零,min也會始終輸出零。在本例中,我將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
初始化為零,因為這是數組元素的默認值; 沒有什么比這更小了,所以答案總是零。
您應該在標記為“查找最小值”的塊中開始外部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
),因為保證它們的值分別小於和大於它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.