是自己做的一份作业,很简单,主要涉及数组的复制,方法的使用等等,还有奇数的判断方法,质数的判断方法,程序不是最简约的,但是是当下的我的思路,就当记录以下吧。
package com.methods;//删掉了一点
import java.util.Arrays;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
//输入数组长度
System.out.print("请输入长度:");
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
//输入随机数范围
System.out.print("请输入随机数范围:");
Scanner scanner1 = new Scanner(System.in);
int scope = scanner1.nextInt();
//获取长度为length的随机数组
int[] arr = randomNumber(length,scope);
System.out.println("随机生成的数组:" + Arrays.toString(arr));
//数组排序
System.out.println("排序后的数组:" + Arrays.toString(sort(arr)));
//求平均数
System.out.println("平均数:" + ave(arr,length));
//奇数
System.out.println("奇数:" + Arrays.toString(odd(arr,scope)));
//质数
System.out.println("质数:" + Arrays.toString(prime(arr,scope)));
}
//获取长度,产生随机数组,并返回main函数
public static int[] randomNumber(int arrarLength, int scope){
int[] arr=new int[arrarLength];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random()*scope);
}
return arr;
}
//给生成的数组排序
public static int[] sort(int[] arr1){
for(int j = 0; j < arr1.length - 1; j++) {
for (int i = 0; i < arr1.length - j - 1; i++) {
if (arr1[i] >= arr1[i + 1]) {
//交换值
int temp = arr1[i];
arr1[i] = arr1[i + 1];
arr1[i + 1] = temp;
}
}
}
return arr1;
}
//求平均数
public static double ave(int[] arr,int length){
double ave = 0.0;
double sum = 0;
for(int i = 0; i < arr.length; i++){
sum = sum + arr[i];
}
ave = sum / length;
return ave;
}
//注意注意,数组是传递的地址值,不是直接传值
//质数
public static int[] prime(int[] arr1,int scope){
//传下来的地址先复制一个
int[] arr;
arr = Arrays.copyOf(arr1,scope);//Arrays.copyOf会复制成一个新的数组,不会占据原来数组的内存空间,这里不能用 arr = arr1; 不然还是在原来的数组空间进行操作。下面的奇数也是一样的。
int z = 0;
for(int j = 0; j < arr.length - 1; j++){
int i = 2;
for(; i < arr[j] ; i++) {
if (arr[j] % i== 0 ) {//质数的判定方法
break;
}
}
if (i >= arr[j] && arr[j] != 0 && arr[j] != 1) {//1,0都不是质数
arr[z] = arr[j];
z++;
}
}
arr = Arrays.copyOf(arr,z);
return arr;
}
//奇数
public static int[] odd(int[] arr1,int scope) {
int[] arr;
arr = Arrays.copyOf(arr1,scope);
int temp = 0;
for(int i = 0; i < arr.length - 1; i++){
if(arr[i] % 2 != 0 && arr[i] != 0){//奇数的判断方法
arr[temp] = arr[i];
temp++;
}
}
arr = Arrays.copyOf(arr,temp);
return arr;
}
}
运行结果截图: