• Java 入门练习(16 - 20)


    JAVA16 数组遍历

    描述

    将用户输入的六个数字填入数组并找出数组中最大值和最小值

    输入描述

    随机输入的 6 个整数

    输出描述

    输出数组中的最大值,最小值(最大值最小值之间用空格隔开。若有多个最大值或最小值,输出一次即可,如样例2所示)

    示例1

    输入:

    1 3 5 2 4 6
    
    • 1

    输出:

    6 1
    
    • 1

    示例2

    输入:

    1 1 2 3 4 4
    
    • 1

    输出:

    4 1
    
    • 1

    解答

    利用 Arrays 中的 sort() 方法对数组 ary 进行排序,排序后的数组中,第一个数就是最小的,最后一个就是最大的。

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            int[] ary = new int[6];
            int max;
            int min;
            Scanner scanner = new Scanner(System.in);
         	for (int i = 0; i <ary.length ; i++) {
                ary[i]=scanner.nextInt();
            }
    
            Arrays.sort(ary);
            max = ary[ary.length - 1];
            min = ary[0];
            
            System.out.println(max+" "+min);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    JAVA17 数组倒转

    描述

    输入 6 个整数,先将其输出然后再将数组倒转,再次输出数组

    输入描述

    用户随机输入的 6 个 int 类型变量

    输出描述

    先输出用户输入顺序的数组(这一步预设代码已给出)

    再输出反转后的数组(输出格式为 Arrays.toString(arr),参考预设代码中的输出格式)

    示例1

    输入:

    52 10  37 40 60 83
    
    • 1

    输出:

    [52, 10, 37, 40, 60, 83]
    [83, 60, 40, 37, 10, 52]
    
    • 1
    • 2

    解答

    要将数组元素逆序,可以采用双指针,用来指向数组的首尾元素,然后交换两者位置,然后将指针向中间靠近,不断交换位置,直到首尾指针相遇。

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            int[] arr = new int[6];
            Scanner scanner = new Scanner(System.in);
            for (int i = 0; i < arr.length; i++) {
                arr[i] = scanner.nextInt();
            }
            System.out.println(Arrays.toString(arr));
    
            int left = 0, right = arr.length - 1;
            while (left < right) {
                int temp = arr[left];
                arr[left] = arr[right];
                arr[right] = temp;
                left++;
                right--;
            }
            System.out.println(Arrays.toString(arr));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    JAVA18 二维数组求和

    描述

    给定一个二维数组,请你编写一个求和函数,计算出这个数组元素的和

    输入描述

    输出描述

    输出二维数组元素的和

    示例1

    输入:

    • 1

    输出:

    5180
    
    • 1

    解答

    要求二维数组元素的和,那么需要使用双重循环,遍历数组中的元素,然后一个个相加。注意,求数组长度时,外层长度为 arr.length,内层长度为 arr[i].length

    public class Main {
        public static void main(String[] args) {
            int[][]  arr = {{11, 33, 55}, {22, 44, 66, 88}, {131, 214, 315, 146}, {928, 827, 726, 625}, {424, 525}};
            int sum = add(arr);
            System.out.println(sum);
        }
    
        public static int add(int[][] arr) {
            int sum = 0;
    
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    sum += arr[i][j];
                }
            }
    
            return sum;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    JAVA19 修改Data类的定义

    描述

    现有一个 Data 类,内部定义了属性 x 和 y,在 main 方法中实例化了 Data 类,并计算了 data 对象中 x 和 y 的和。但是,Data 类的定义存在错误,请你将这些错误修正过来,使得 main 方法中的求和逻辑可以正常执行。

    输入描述

    两个整数

    输出描述

    两个整数的和

    示例1

    输入:

    1 2
    
    • 1

    输出:

    3
    
    • 1

    解答

    主要需要修改构造函数和 getter 的访问域,从 private 转为 public。其次,在构造函数中,需要添加 this

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNextInt()) {
                int x = scanner.nextInt();
                int y = scanner.nextInt();
                Data data = new Data(x, y);
                System.out.println(data.getX() + data.getY());
            }
        }
    
    }
    
    class Data {
    
        private int x;
        private int y;
    
        public Data(int x, int y) {
            this.x = x;
            this.y = y;
        }
    
        public int getX() {
            return x;
        }
    
        public int getY() {
            return y;
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    JAVA20 验证年龄

    描述

    采用封装的思想,为 Person 类定义年龄属性,要求:

    修改年龄时判断其范围,若年龄小于 0 则按 0 输出,若年龄大于 200 则按 200 输出。

    输入描述

    年龄整数值

    输出描述

    1. 若年龄小于 0 则输出 0;

    2. 若年龄大于 200 则输出 200;

    3. 若年龄介于 [0,200] 之间则直接输出。

    示例1

    输入:

    25
    
    • 1

    输出:

    25
    
    • 1

    示例2

    输入:

    -25
    
    • 1

    输出:

    0
    
    • 1

    示例3

    输入:

    250
    
    • 1

    输出:

    200
    
    • 1

    解答

    无非就是考察类中的 getset 方法,但是此时要注意,需要根据题意将年龄进行分段。

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Person p = new Person();
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNextInt()) {
                int age = scanner.nextInt();
                p.setAge(age);
                System.out.println(p.getAge());
            }
        }
    
    }
    
    class Person {
    
        private int age;
    
        public void setAge(int age) {
            if (age < 0) {
                this.age = 0;
            } else if (age > 200) {
                this.age = 200;
            } else {
                this.age = age;
            }
        }
        public int getAge() {
            return age;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    实验4 NoSQL和关系数据库的操作比较
    POJ 3134:Power Calculus ← IDA*
    漏洞修复优先级考虑-不错的思路
    带长度限制的最大子段和,无名一
    Python自制图片拼图小游戏
    [原创]基于Jsp+Servlet的疫苗接种管理系统的设计与实现(Web设计源代码)
    基于java+springmvc+mybatis+vue+mysql的班级管理系统
    Unity DOTS学习 前置知识(二)
    【无标题】
    一审要求公开数据和代码问题请教
  • 原文地址:https://blog.csdn.net/github_39655029/article/details/125511001