一下是一道java赋值随机数并求最小值的程序输出

2021-01-13 05:18:45 字数 2287 阅读 4180

1楼:匿名用户

min初始化为0,你的随机数字始终大于0,所以0最小修改for (int i = 0; i < arr.length; i++)

if (arr[i] < min)}

java中循环输入4个数,求最小值,但是输出最小值结果是0?可以帮我修改一下吗?不明白是什么原因?谢谢了

2楼:匿名用户

哈哈,很郁闷吧?让我来告诉你,因为你之前在没有接受控制台输入的值的时候就给min赋值了,而且赋的是0,所以在以后的判断 jiage[i]

3楼:匿名用户

system.out.println("请输入4家店的**:");

intmin=0;

for(inti=0;i<4;i++){system.out.print("第"+(i+1)+"店的**:");

inttemp=input.nextint();

if(temp格是:"+min);

4楼:匿名用户

为什么不是先输入数再比较?

用java输入三个整数,求最大值和最小值,为什么用一个for循环中最小值求出总是0,什么问题呢

5楼:匿名用户

int max=a[0];int min=a[0];有问题最大值和最小值均初始化为0了

a[0]没赋过值,是整数缺省值0

若你输入的数值均是正数,肯定比0大,那么每次最小值均没动还是0(同理若你输入全部是负数,那么最大值最后结果为0)建议修改方案(1)int max=integer.min_value;int min= integer.max_value;

或者(2)输入第一个a[0]后,再将a[0]赋值给max和min

6楼:以花之名

你这样的判断是不合理的,我们打个比方,比如打了三个数字分别是1,2,3的话,

前面啊int a =new int[3];开辟空间,并给三个空间赋上初值0;

第一步:max=0,min=0;//a[0]的值吧?

然后循环判断,if(0<1)//显然是 赋值,if(0>1)//显然也不是,跳过。

第二轮2来了。if(1<2)//是的把a[i]的值赋值给max,在判断(0>2)//不是跳过

第三轮3来了。if(2<3)//是的赋值,再判断0>3

这样最后结果就是max是3,min是0;

如果你非要用这样的方法的话,你只要把min的初始值值改成很大很大的值就可以了,但是不推荐。

以下是合理的做法。

public class maxminvalues

} system.out.print("最大值:"+a[max]+"最小值:"+a[min]);}}

7楼:匿名用户

其实这个题目可以不用for循环的你可以把得到的三个整数放到一个int数组里然后再调用arrays.sort(int);这个方法它会自动帮你按数字升序排序你只

要得到数组中的第一个值和最后一个值就可以了**如下

publicstaticvoidmain(stringargs)

8楼:蜀山_风云

原因是因为int数组如果不给初始值的话就等于0,所以起始的时候你的max和min都是0,那么如果你输入的都是正整数的话,就都比0大,到结束的时候你的min还是为0,就不对了,最简单的改法就是给min的初始值为100。因为成绩都是0~100正整数。并且你这样写**有点不规范,成绩一般是0~100(当然也有高于100的情况,比如总分),所以如果是0~100的话就改成这样(当然还有其他的改法):

importjava.util.scanner;

publicclassmaxminvaluesa[i]=keyinscore;

if(max

if(min>a[i])

}system.out.print("最大值:"+max+"最小值:"+min);}}

9楼:匿名用户

你一开始就把min=a[0],而数组a一开始java是自动初始化它的所有元素为0的,所以min=0。这样你后面输入的数字只要是正数肯定都比min大,min当然就一直都是0了。

10楼:匿名用户

那是因为你把min初始化为0了,这句初始化的int min=a[0];当你输入正数的时候最小值当然是0,你可以输入负数,最小值就对了

解释一下这个java程序输出的结果是什么?为什么

1楼 输出结果是 罗马假日 当一个对象要进行垃圾 的时候会调用finalize 方法。 因为在下面的 中,变量b从来没有使用过,会被gc 。 book book new book 1 而new book 3 是在一个内存地址中建立的对象,java不确定是否使用过,所以不予 。 高手请解释一下为什么这...