所以我只是想愚弄2D数组,并对一件事情感到好奇
我编写了一个代码,以返回2d数组中随机的最大和最小数字的索引,我尝试在* 10上进行,并且效果很好,但是当我尝试将其乘以100时,最大数可以工作,但是最小编号不起作用,我一直来回搜寻,只是找不到它,这是我的代码,我实际上在最后一个问题的答案部分中问过了,但是它被删除了,所以我不得不再次提出一个问题,对不起我几天前才刚开始,有太多要问的问题
最小数字获取最大数量 enter image description here
int[][] mdArray = new int[5][5];
int i =0;
int j =0;
int min = 0;
for(i=0; i<mdArray.length; i++){
for(j=0; j<mdArray[i].length; j++) {
mdArray[i][j] = (int)(Math.random()*100);
System.out.print(mdArray[i][j] + " ");
if(min>mdArray[i][j])
{
min= mdArray[i][j];
}
}
System.out.println("");
}
System.out.println("");
for(i=0; i<mdArray.length; i++){
for(j=0; j<mdArray[i].length; j++){
if(mdArray[i][j] == min) {
System.out.println("["+i+"]"+"["+j+"]");
}
}
}
答案 0 :(得分:1)
找不到min
,因为min
从0开始,这意味着它已经低于您的任何随机数。
Min
必须从100开始,max
需要从0开始。
int[][] mdArray = new int[5][5];
int i = 0;
int j = 0;
int min = 100;
for(i = 0; i < mdArray.length; i++){
for(j = 0; j < mdArray[i].length; j++) {
mdArray[i][j] = (int)(Math.random()*100);
System.out.print(mdArray[i][j] + " ");
if(min>mdArray[i][j])
{
min= mdArray[i][j];
}
}
System.out.println("");
}
System.out.println("");
for(i = 0; i < mdArray.length; i++){
for(j = 0; j < mdArray[i].length; j++){
if(mdArray[i][j] == min) {
System.out.println("["+i+"]"+"["+j+"]");
}
}
}
答案 1 :(得分:0)
这是因为您将min
初始化为零,并且数组中的任何内容都不小于零。尝试使用Integer.MAX_VALUE
对其进行初始化。