问题描述
- java随机生成5个数,最小值求不出?
-
public class random1{
public static void main(String args[]){
int arr[]=new int[5];
int max=arr[0];
int min=arr[0];
for(int i=0;i<5;i++){
arr[i]=(int)(Math.random()*100);
System.out.println(arr[i]);
if(max<arr[i])
max=arr[i];
if(arr[i]<min)
min=arr[i];
}
System.out.println(max);
System.out.println(min);
}
}
解决方案
java里int数组在初始化时如果没有声明值,那么数组里的整数值默认为0。
所以你在最开始的时候给min=arr[0]赋值时。其实是给min赋值为0了。
你可以在for循环里面判断 i 是不是为0,如果是为0,则直接赋值给max和min,大于0才做判断。
解决方案二:
int min=arr[0];你在这里给min赋了初始值为0,arr[i]=(int)(Math.random()*100);而你这里的又生存的是整数,那么if(arr[i]<min)这里的判断条件就恒为false
你下面的min=arr[i]是永远都不会执行的,
解决方案三:
最小值当然是求不对的,因为你在定义了一个空的数组之后就马上采取了max和min的赋值操作,这是不合理的。
问题出在这两行:
int max=arr[0];
int min=arr[0];
应改成:
int max = xx(A number very very small depending on your situation);
int min = xx(A number very very large depending on your situation);
解决方案四:
最大最小值赋值的时候,最好用已经定义的最大最小值。比如
max = Integer.MIN_VALUE;
min = Integer.MAX_VALUE;
时间: 2024-11-11 16:30:22