Java 基础第四天

一、基础案例

1.训练案例1

1.1.训练考核知识点
能够完成数组的求最值
1.2.训练描述
定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值
1.3.操作步骤描述
1.定义5个元素数组
2.可以使用初始化数组的两种方式之一为数组元素赋值
3.遍历数组求数组中的最小值

public class test1 {
    public static void main(String[] args) {
    int[] arr={8,3,9,4,2};
    int min=arr[0];
    for(int x=1;x<arr.length;x++){
        if(arr[x]<min){
            min=arr[x];
        }
    }
    System.out.println("数组中最小值为"+min);
    }
}

2.训练案例2

2.1.训练考核知识点
数组和随机数综合
2.2.训练描述
定义一个长度为3的一维数组,给每个元素赋值. (要求数组中每个元素的值是0-9的随机数)
遍历数组打印每个元素的值
2.3.操作步骤描述
1.定义长度为3的数组
2.创建Random引用数据类型的变量
3.生成3个0-9的随机数,为每一个元素赋值(可以用循环,也可以不使用循环)
4.遍历数组,并打印每一个元素

import java.util.Random;

public class test2 {
    public static void main(String[] args) {
        Random r=new Random();
        int[] data=new int[10];
        for(int x=0;x<data.length;x++){
            data[x]=r.nextInt(10);
            System.out.println(data[x]);
        }
    }
}

3.训练案例3

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

public class test3 {
    public static void main(String[] args) {
        int[] nums = {5,10,15};
        int[] arr=new int[3];
        for(int x=0;x<arr.length;x++){
            arr[x]=2*nums[x];
            System.out.println(arr[x]);
        }

    }
}

4.训练案例4

4.1.训练考核知识点
数组和判断语句综合

4.2.训练描述
键盘录入一个整数,创建一个该长度的数组,为每一个元素赋值为1-10的随机整数,最后打印数组中所有值大于5且为偶数的元素.

4.3.操作步骤描述
1键盘录入一个整数
2定义长度为该整数的数组
3创建Random引用数据类型的变量
4生成5个0-9的随机数,为每一个元素赋值(建议用循环)
5 遍历数组,输出满足条件的元素

import java.util.Random;

public class test2 {
    public static void main(String[] args) {
        Random r=new Random();
        int[] data=new int[5];
        for(int x=0;x<data.length;x++){
            data[x]=r.nextInt(9);
            if(data[x]%2==0&data[x]>5)
            System.out.println(data[x]);
        }
    }
}

5.训练案例5

5.1.训练考核知识点
数组和判断语句综合

5.2.训练描述
在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值。
请写代码实现。(不考虑小数部分)

5.3.操作步骤描述
A:定义一个长度为6的数组
B:评委打分的数据采用键盘录入实现
C:写代码获取数组的最大值(最高分)
D:写代码获取数组的最小值(最低分)
E:写代码求数组中的元素和(总分)
F:平均分:(总分-最高分-最低分)/(arr.length-2)
G:输出平均分即可

import java.util.Scanner;

public class test4 {
    public static void main(String[] args) {
        int[] arr=new int[6];
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入六个评委的打分:");
        for(int i=0;i<6;i++){
            int score=sc.nextInt();
            arr[i]=score;
        }
        int min=arr[0];
        for(int i=1;i<arr.length;i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
            int max=arr[0];
            for(int i=1;i<arr.length;i++){
                if(arr[i]>max){
                    max=arr[i];
                }
            }
         int sum=0;
            for(int i=0;i<arr.length;i++){
                sum=sum+arr[i];
            }
        sum=sum-max-min;
            double a=sum/4;
            System.out.print("平均分为"+a);
    }

}

6.训练案例6

6.1.训练考核知识点
数组

6.2.训练描述
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?

第一个月:1
第二个月:1
第三个月:2
第四个月:3
第五个月:5

从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和
第一个月和第二个月的兔子对数都是1

6.3.操作步骤描述
A:由于数据比较多,所以我们定义数组实现
int[] arr = new int[20];
B:给数组中的元素赋值
arr[0] = 1;
arr[1] = 1;
C:从第三个月开始,根据规律赋值
arr[2] = arr[1] + arr[0];
arr[3] = arr[2] + arr[1];
arr[4] = arr[3] + arr[2];

D:输出第二十个月的兔子对数,其实就是输出arr[19]

public class test5 {
    public static void main(String[] args) {
        int[] arr=new int[20];
        arr[0]=1;
        arr[1]=1;
        for(int x=2;x<arr.length;x++)
        {
            arr[x]=arr[x-1]+arr[x-2];
        }
        System.out.print("第二十个月的兔子对数为"+arr[19]);
    }
}

二、扩展案例

1.训练案例1

2.1.训练考核知识点
数组,键盘录入,随机数,
2.2.训练描述
分析以下需求,并用代码实现
1.键盘录入班级人数
2.根据录入的班级人数创建数组
3.利用随机数产生0-100的成绩(包含0和100)
4.要求:
(1)打印该班级的不及格人数
(2)打印该班级的平均分
(3)演示格式如下:
请输入班级人数:
键盘录入:100
控制台输出:
不及格人数:19
班级平均分:87
2.3.操作步骤描述
1.创建键盘录入对象
2.定义int类型的变量num,并通过键盘录入给num赋值
3.创建int类型的数组,数组长度为num
4.创建Random对象
5.遍历数组
(1)随机产生[0-100]的值
(2)将随机产生的数值赋值给数组中的当前元素
6.定义变量count用于统计不及格学员数量,定义变量sum用于统计总分
7.遍历数组
(1)将当前元素的值累加到sum中
(2)判断当前元素的值如果<60,count++
8.打印不及格数量和平均分(sum/num)

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

public class test6 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入班级人数:");
        int n=sc.nextInt();
        int[] score=new int[n];
        Random r=new Random();
        int count=0,sum=0;
        for(int x=0;x<score.length;x++){
            score[x]=r.nextInt(100);
            if(score[x]<60){
                count++;
            }else{
                sum=sum+score[x];
            }
        }
        double avrS=sum/n;
        System.out.print("不及格的人数为:"+count);
        System.out.print("平均分为:"+avrS);
    }
}

2.训练案例2

3.1.训练考核知识点
键盘录入,数组,循环,if
3.2.训练描述
假设有一个长度为5的数组,数组元素通过键盘录入,如下所示:
int[] arr = {1,3,-1,5,-2}
要求:
创建一个新数组newArr[],新数组中元素的存放顺序与原数组中的元素逆序,并且如果原数组中的元素值小于0,
在新数组中按0存储。最后输出原数组和新数组中的内容

请输入5个整数:
1
3
-1
5
-2
原数组内容:
1 3 -1 5 -2
新数组内容:
0 5 0 3 1

3.3.操作步骤描述
1.创建键盘录入对象
2.定义长度为5的int类型的数组arr
3.利用for循环通过键盘录入给数组元素赋值
4.定义长度为5的int类型的新数组newArr,定义int类型的变量index=0,用来表示新数组的元素索引
5.倒着遍历原数组
(1)定义int类型的变量num,并将数组当前元素的值赋值给num
(2)使用if判断num的值
a.如果num>=0,直接将num赋值给新数组的当前元素,index++
b.否则直接将0复制给新数组的当前元素,index++
6.打印原数组和新数组的内容(利用for循环)

import java.util.Scanner;

public class test7 {
    public static void main(String[] args) {
        int[] arr=new int[5];
        Scanner sc=new Scanner(System.in);
        System.out.println("原数组为:");
        for(int i=0;i<5;i++){
            arr[i]=sc.nextInt();
        }
        int[] newArr=new int[5];
        for(int x=4;x>=0;x--){
            newArr[x]=arr[4-x];
            if(newArr[x]<0){
                newArr[x]=0;
            }
        }

        System.out.println("新的数组为");
        for(int i=0;i<newArr.length;i++){
            System.out.println(newArr[i]);
        }
    }
}

3.训练案例3

4.1.训练考核知识点
数组,循环结构,判断结构综合应用练习
4.2.训练描述
定义长度为10的int数组,数组中的10个元素为随机生成的1-100的数字,要求:打印数组中第二大的数和第二小的数字
打印格式:
原数组内容
90 34 12 35 98 23 17 71 4 66
数组中的第二大的数字为:90
数组中的第二小的数字为:12

public class test8 {
    public static void main(String[] args) {
        int [] score={90,34,12,35,98,23,17,71,4,66 };
        for(int i=0;i<score.length;i++){
            for(int j=i+1;j<score.length;j++){
                if(score[i]<score[j]){
                    int temp=score[i];
                    score[i]=score[j];
                    score[j]=temp;
                }
            }
        }
        System.out.println("第二大数为"+score[1]);
        for(int i=0;i<score.length;i++){
            for(int j=i+1;j<score.length;j++){
                if(score[i]>score[j]){
                    int temp=score[i];
                    score[i]=score[j];
                    score[j]=temp;
                }
            }
        }
        System.out.println("第二小数为"+score[1]);
    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值