随机输入10个1-100的数,求最大值最小值
我想问问下面这段代码为什么执行不了最小值的操作
int[] number=new int[10];
int max=number[0];
int min=number[0];
for(int i=0;i<number.length;i++){
number[i]=(int)(Math.random()*100+1);
System.out.print(number[i]+"\t");
}
for(int i=1;i<number.length;i++){
if(max<number[i]){
max=number[i];
}
}
for(int i=1;i<number.length;i++){
if(min>number[i]){
min=number[i];
}
}
System.out.println("\n最大值"+max);
System.out.println("最小值"+min);

解决方案 »

  1.   

    你犯了个错误,值传递不同于应用传递,问题出在你对min变量的初始赋值上,其实max和min的初始赋值都应该在第一个for循环下一行,就应该对了。即
    int[] number=new int[10];
            int max=number[0];
            int min=number[0];
            for(int i=0;i<number.length;i++){
                number[i]=(int)(Math.random()*100+1);
                System.out.print(number[i]+"\t");
            }
            max=number[0];
            min=number[0];
            for(int i=1;i<number.length;i++){
                if(max<number[i]){
                    max=number[i];
                }
            }
            for(int i=1;i<number.length;i++){
                if(min>number[i]){
                    min=number[i];
                }
            }
            System.out.println("\n最大值"+max);
            System.out.println("最小值"+min);
      

  2.   

    int min=number[0];改语句默认初始化为0了,所以最小值肯定一直是0啦
      

  3.   

    将        int max=number[0];
            int min=number[0];        <----这句移到 
           for(int i=1;i<number.length;i++){
                if(min>number[i]){
                    min=number[i];
                }
            }前面应该就好了~