【Java】新手小白入门编程第3讲 JAVA数组训练案例

训练案例1
需求描述:
定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值。
操作步骤描述:
1) 定义5个元素数组。
2) 可以使用初始化数组的两种方式之一为数组元素赋值。
3) 遍历数组求数组中的最小值。

/**
 * 定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值。
 * 操作步骤描述:
 * 1) 定义5个元素数组。
 * 2) 可以使用初始化数组的两种方式之一为数组元素赋值。
 * 3) 遍历数组求数组中的最小值。
 */
public class Test01 {
    public static void main(String[] args) {
        int [] arr={5,9,1,3,8};
        int min=arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(min>arr[i]){
                min=arr[i];
            }
        }
        System.out.println(min);
    }
}

训练案例2
需求描述:
定义一个长度为3的一维数组,给每个元素赋值。(要求数组中每个元素的值是0-9的随机数)。遍历数组打印每个元素的值。
操作步骤描述:
1) 定义长度为3的数组。
2) 创建Random引用数据类型的变量。
3) 生成3个0-9的随机数,为每一个元素赋值(可以用循环,也可以不使用循环)。
4) 遍历数组,并打印每一个元素。



import java.util.Random;

/**
 * 定义一个长度为3的一维数组,给每个元素赋值。(要求数组中每个元素的值是0-9的随机数)。遍历数组打印每个元素的值。
 * 操作步骤描述:
 * 1) 定义长度为3的数组。
 * 2) 创建Random引用数据类型的变量。
 * 3) 生成3个0-9的随机数,为每一个元素赋值(可以用循环,也可以不使用循环)。
 * 4) 遍历数组,并打印每一个元素。
 */
public class Test02 {
    public static void main(String[] args) {
        int[] arr= new int[3];
        Random r = new Random();
        int a =r.nextInt(10);
        int b =r.nextInt(10);
        int c =r.nextInt(10);
        arr[0]=a;
        arr[1]=b;
        arr[2]=c;
        for (int j = 0; j < arr.length; j++) {
            System.out.println(arr[j]);
        }
    }
}

训练案例3
需求描述:已知数组int[] nums = {5,10,15},要求创建一个新数组。
1) 新数组的长度和已知数组相同。
2) 新数组每个元素的值 是已知数组对应位置元素的2倍。
3) 在控制台中打印新数组的所有元素。
操作步骤描述:
1) 定义题目要求的已知数组。
2) 定义题目要求的新数组。
3) 根据条件为新数组中每个元素赋值。
4) 遍历新数组打印到控制台中。



/**
 * 已知数组int[] nums = {5,10,15},要求创建一个新数组。
 * 1) 新数组的长度和已知数组相同。
 * 2) 新数组每个元素的值 是已知数组对应位置元素的2倍。
 * 3) 在控制台中打印新数组的所有元素。
 */
public class Test03 {
    public static void main(String[] args) {
        int[] nums = {5,10,15};
        int[] arr = new int[3];
        for (int i = 0; i < nums.length; i++) {
            arr[i]=2*nums[i];
        }
        for (int j = 0; j < arr.length; j++) {
            System.out.print(arr[j]+" ");

        }
    }
}

训练案例4
需求描述:
键盘录入一个整数,创建一个该长度的数组,为每一个元素赋值为1-10的随机整数,最后打印数组中所有值大于5且为偶数的元素。
操作步骤描述:
1.键盘录入一个整数。
2.定义长度为该整数的数组。
3.创建Random引用数据类型的变量。
4.生成5个0-9的随机数,为每一个元素赋值(建议用循环)。
5.遍历数组,输出满足条件的元素。



import java.util.Random;
import java.util.Scanner;

/**
 * 键盘录入一个整数,创建一个该长度的数组,为每一个元素赋值为1-10的随机整数,最后打印数组中所有值大于5且为偶数的元素。
 * 操作步骤描述:
 * 1.键盘录入一个整数。
 * 2.定义长度为该整数的数组。
 * 3.创建Random引用数据类型的变量。
 * 4.生成0-9的随机数,为每一个元素赋值(建议用循环)。
 * 5.遍历数组,输出满足条件的元素。
 */
public class Test04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入该长度:");
        int l = sc.nextInt();
        int[] arr = new int[l];
        Random r = new Random();

        for (int i = 0; i < arr.length; i++) {
            int n = r.nextInt(10);
            arr[i]=n;
            if(arr[i]>5&&arr[i]%2==0){
                System.out.println(arr[i]);
            }
        }


    }
}

训练案例5
需求描述:
1.将数字1-10保存到一个长度为10的一维数组中。
2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)。
3.给新数组的元素赋值。
4.求新数组所有元素的和。
操作步骤描述:无。



import java.util.Random;

/**
 * 1.将数字1-10保存到一个长度为10的一维数组中。
 * 2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)。
 * 3.给新数组的元素赋值。
 * 4.求新数组所有元素的和。
 */
public class Test05 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] arr1 = new int[3];
        boolean d[] = new boolean[arr.length];
        Random r = new Random();
        int num =r.nextInt();
        int count = 3; // 要随机取的元素个数
        int n = 0;
        int sum =0;
        while (true) {
            int temp = r.nextInt(10);
            if (!d[temp]) {
                if (n == count) // 取到足量随机数后退出循环
                    break;
                n++;
                sum+=arr[temp];
                System.out.println("得到的第" + n + "个数组中随机数为:" + arr[temp]);
            }
        }
        System.out.println(sum);
    }
}

拓展案例
需求描述:
1)基础班考试要进行分组,键盘录入该班级总共多少组,以及每组的学生数量。
2)根据录入的组数及每组学员的数量创建二维数组。
3)利用随机数产生0-100的成绩(包含0和100)。
4)要求:
1)打印该班级中每组的不及格人数。
2)打印该班级中每组的平均分。
3)打印组的最高平均分。
4)打印班级中的不及格人数。
5)打印班级平均分。
6)演示格式如下:
请输入班级总组数:3
请输入班级中每组的人数:10
控制台输出:
第1组不及格人数为: 6 人
第1组平均分为: 52
第2组不及格人数为: 7 人
第2组平均分为: 46
第3组不及格人数为: 3 人
第3组平均分为: 69
班级中单组最高平均分为:69
班级中不及格人数为: 16 人
班级总平均分为: 56
操作步骤描述:
1) 创建键盘录入对象。
2) 定义int类型的变量zs(组数)和zps(每组的人数),并通过键盘录入给zs(组数)和zps(每组的人数)赋值。
3) 创建int类型的二维数组,int[][] arr = new int[zs][zps];
4) 创建Random对象。
5) 遍历数组。
1)随机产生[0-100]的值。
2)将随机产生的数值赋值给数组中的当前元素。
6) 分析以上打印格式,需要定义以下变量。
1)定义inGroupLower60Num(每组内低于60的学员数量),用于统计每组的不及格人数。
2)定义inClassLower60Num,用于统计班级中的不及格人数。
3)定义groupMaxAvg,用于统计单组最高平均分。
4)定义inGroupSum,用于统计每组的总分。
5)定义inClassNum,用于统计班级的人员数量。
6)定义inClassSum,用于统计班级的总分。
7) 遍历二维数组,进行以上统计。



import java.util.Random;
import java.util.Scanner;

public class Test06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入有多少组:");
        int zs = sc.nextInt();
        System.out.println("请输入每组的人数:");
        int zps = sc.nextInt();
        int[][] arry = new int [zs][zps];
        Random ran = new Random();
        int inGroupLower60Num = 0;//用于统计每组的不及格人数
        int ClassLower60Num = 0;  //用于统计班级中的不及格人数
        double groupMaxAvg = 0;      //用于统计单组最高平均分
        int inGroupSum = 0;       //用于统计每组的总分
        int inClassNum = 0;       //用于统计班级的人员数量
        int inClassSum = 0;       //用于统计班级平均分的总分
        int z = 0;                //单组低于60人总数
        double b = 0;                //班级平均分
        double c = 0;               //班级平均分总分
        double MAX = 0;
        double groupAvg = 0;//单组平均分
        for (int i = 0; i < arry.length; i++) {
            for (int j = 0; j < arry[i].length; j++) {
                int num = ran.nextInt(101);//0-100
                arry[i][j] = num;
                inGroupSum += arry[i][j];
                if (num < 60){
                    z++;
                }
            }
            groupAvg = inGroupSum /arry[i].length;
            System.out.println("第"+(i+1)+"组不及格人数为:"+ z );
            System.out.println("第"+(i+1)+"组平均分为:"+ groupAvg);
            if (groupAvg > MAX){
                groupMaxAvg = groupAvg;
                MAX = groupAvg;
            }
            ClassLower60Num += z;
            inClassSum +=groupAvg;
            groupAvg = 0;
            z = 0;
            inGroupSum = 0;
        }
        b = inClassSum / zs;
        System.out.println("班级中单组最高平均分为:"+ groupMaxAvg);
        System.out.println("班级中不及格人数为:"+ ClassLower60Num);
        System.out.println("班级总平均分为:"+ b);
    }
}
  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZikH~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值