JAVA16 数组遍历
描述
将用户输入的六个数字填入数组并找出数组中最大值和最小值
输入描述
随机输入的 6 个整数
输出描述
输出数组中的最大值,最小值(最大值最小值之间用空格隔开。若有多个最大值或最小值,输出一次即可,如样例2所示)
示例1
输入:
输出:
示例2
输入:
输出:
解答
利用 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] [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
输入:
输出:
解答
要求二维数组元素的和,那么需要使用双重循环,遍历数组中的元素,然后一个个相加。注意,求数组长度时,外层长度为 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
输入:
输出:
解答
主要需要修改构造函数和 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
输入:
输出:
示例2
输入:
输出:
示例3
输入:
输出:
解答
无非就是考察类中的 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; } }