当前位置 : 主页 > 编程语言 > java >

Java 入门练习(16 - 20)

来源:互联网 收集:自由互联 发布时间:2022-07-04
JAVA16 数组遍历 描述 将用户输入的六个数字填入数组并找出数组中最大值和最小值 输入描述 随机输入的 6 个整数 输出描述 输出数组中的最大值,最小值(最大值最小值之间用空格隔开

JAVA16 数组遍历

描述

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

输入描述

随机输入的 6 个整数

输出描述

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

示例1

输入:

1 3 5 2 4 6

输出:

6 1

示例2

输入:

1 1 2 3 4 4

输出:

4 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);
}
}

JAVA17 数组倒转

描述

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

输入描述

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

输出描述

先输出用户输入顺序的数组(这一步预设代码已给出) 再输出反转后的数组(输出格式为 Arrays.toString(arr),参考预设代码中的输出格式)

示例1

输入:

52 10 37 40 60 83

输出:

[52, 10, 37, 40, 60, 83]
[83, 60, 40, 37, 10, 52]

解答

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

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));
}
}

JAVA18 二维数组求和

描述

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

输入描述

输出描述

输出二维数组元素的和

示例1

输入:

输出:

5180

解答

要求二维数组元素的和,那么需要使用双重循环,遍历数组中的元素,然后一个个相加。注意,求数组长度时,外层长度为 ​​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;
}
}

JAVA19 修改Data类的定义

描述

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

输入描述

两个整数

输出描述

两个整数的和

示例1

输入:

1 2

输出:

3

解答

主要需要修改构造函数和 ​​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;
}

}

JAVA20 验证年龄

描述

采用封装的思想,为 Person 类定义年龄属性,要求: 修改年龄时判断其范围,若年龄小于 0 则按 0 输出,若年龄大于 200 则按 200 输出。

输入描述

年龄整数值

输出描述

  • 若年龄小于 0 则输出 0;
  • 若年龄大于 200 则输出 200;
  • 若年龄介于 [0,200] 之间则直接输出。
  • 示例1

    输入:

    25

    输出:

    25

    示例2

    输入:

    -25

    输出:

    0

    示例3

    输入:

    250

    输出:

    200

    解答

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


    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;
    }
    }
    上一篇:java零基础入门-抽象类
    下一篇:没有了
    网友评论