Java用random编写随机生成10个整数,并计算出这10个数的最大值和最小值。


package test;

import java.util.Scanner;

public class _4_random {

public static void main(String[] args) {
        // 数组声明
double [] x=new double[10];
//
//
double 最大=0;double 最小=10;double 和=0;
for(int i=0;i<x.length;i++)//数字遍历
{x[i]=Math.random()*10;
x[i]=Math.round(x[i]*10)/10.0;//保留两位小数
//
System.out.println("第"+(i+1)+"个元素是"+x[i]);
和=和+x[i];
if(最大<x[i]) {最大=x[i];}
else {最小=x[i];}
}
System.out.print("最大值: "+最大+",最小值:"+最小);
    }

}

运行结果及报错内容 :
最小值不对 而且random随机生成的不是整数

img


import java.util.Arrays;
public class A {
    public static void main(String[] args) {
        int a[] = new int[10];
        for(int i = 0;i < 10;i++){
            a[i] = (int)(Math.random() * 10);
        }
        Arrays.sort(a);
        System.out.println("最大值:" + a[9] + "最小值:" + a[0]);
    }
}

最小值判断有误,

else {最小=x[i];}

这行改为如下代码

else if (最小 >= x[i]) {最小 = x[i];}
  1. Math.random() 生成的是 [ 0 , 1)的小数,乘以10 也是 [0 , 10)直接的小数;
  2. 既然你要整数,就不该定义成 double ,而应该是int ;
  3. 你这个if-else 一个数不是最大就是最小?
 // 随机范围是 [0,10] 可以自己调
        int[] arr = new Random().ints(0, 11).limit(10).toArray();
        int max = Arrays.stream(arr).max().getAsInt();
        int min = Arrays.stream(arr).min().getAsInt();
        int sum = Arrays.stream(arr).sum();
        System.out.println("随机数组是:" + Arrays.toString(arr));
        System.out.println("最大值是:" + max);
        System.out.println("最小值是:" + min);
        System.out.println("和 是:" + sum);

x[i]=new Random.nextInt(10) //整数

if(最大<x[i]) { //判断
最大=x[i];
}else if (最小>x[i]) {
最小=x[i];
}