题目1
创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同
代码1
public class ArrayTest2 {public static void main(String[] args) {generateArray(6);}public static void generateArray(int num) {int[] arr = new int[num];for (int i = 0; i < arr.length; i++) {arr[i] = generateNumber(arr);}System.out.println(Arrays.toString(arr));//[4, 28, 26, 2, 18, 30]}public static int generateNumber(int[] arr) {int number = (int) (Math.random() * 30) + 1;for (int a :arr) {while (true) {if (number != a) {break;} else {number = (int) (Math.random() * 30) + 1;}}}return number;}
}
题目2
- 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,
- 然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。
- 要求:所有随机数都是两位数。
随机数知识点
两位数的随机数:
[a,b]:(int) (Math.random()*(b-a+1)+a);
代码2
public class RandomNumber {public static void main(String[] args) {int[] arr = init();System.out.println("arr:" + Arrays.toString(arr));System.out.println("max:" + max(arr));System.out.println("min:" + min(arr));System.out.println("sum:" + sum(arr));System.out.println("avg:" + avg(arr));}// 初始化public static int[] init() {int[] arr = new int[10];for (int i = 0; i < arr.length; i++) {/*两位数的随机数:[a,b]:(int) (Math.random()*(b-a+1)+a);* */
// [10,99]arr[i] = (int) (Math.random() * (99 - 10 + 1) + 10);}return arr;}// 最大值public static int max(int[] arr) {int max = arr[0];for (int a :arr) {max = Math.max(max, a);}return max;}// 最小值public static int min(int[] arr) {int min = arr[0];for (int a :arr) {min = Math.min(min, a);}return min;}// 和值public static int sum(int[] arr) {int sum = 0;for (int a :arr) {sum += a;}return sum;}// 平均值public static int avg(int[] arr) {return sum(arr) / arr.length;}}