首页 > 编程语言 >Java 入门练习:16 - 20

Java 入门练习:16 - 20

时间:2024-08-09 19:24:06浏览次数:12  
标签:输出 arr Java Scanner 16 int 数组 20 public

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 输出。

输入描述

年龄整数值

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

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

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

示例1

输入:

25

输出:

25

示例2

输入:

-25

输出:

0

示例3

输入:

250

输出:

200

解答

无非就是考察类中的 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;
    }
}

标签:输出,arr,Java,Scanner,16,int,数组,20,public
From: https://blog.csdn.net/paofuluolijiang/article/details/140880051

相关文章

  • Java中数组算法的学习
    数组的算法目录数组的算法概述冒泡排序选择排序排序算法库StreamAPI概述简单排序:冒泡排序、选择排序、插入排序高级排序:快速排序、归并排序、希尔排序相关算法知识:划分、递归、二分查找冒泡排序原理:从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,......
  • CF1647F Madoka and Laziness 题解
    CF1647F给定排列\(p\),将其划分为两个单峰子序列,求两个单峰子序列的峰的组合的情况数。\(2\leqn\leq5\times10^5\)首先要注意到一个非常常见的地方:两个单峰子序列中的一个的峰值一定在整个排列\(p\)的最大值处这个非常显然,但并不注意到他的重要性,容易被忽视为......
  • Java基础——注解1——注解的定义与使用
    ......
  • Adobe Premiere Pro(PR2024)中文版软件下载安装
    一、AdobePremierePro软件下载点击此处二、AdobePremierePro软件介绍AdobePremierePro是一款由Adobe公司开发的视频编辑软件,它具有丰富的编辑功能,可以帮助用户创建高质量的视频作品。PR软件支持多种视频格式,可以方便地导入和编辑各种视频素材。同时,PR软件还提供了强大......
  • java6
    我学习了常见API知识java.lang.Math提供数学常量和方法,如基本的数学运算(加、减、乘、除)、三角函数、对数、幂运算等。常用方法:Math.abs(x):返回x的绝对值。Math.max(a,b):返回a和b中的较大值。Math.min(a,b):返回a和b中的较小值。Math.sqrt(x):返回x的平方根。Math.pow(a,b......
  • Visual Studio 2022安装教程
    如有问题请留言。一、下载VisualStudio20221.访问官网: 前往VisualStudio的官方网站(如VisualStudio官网),在首页或下载页面寻找VisualStudio2022的下载链接。2.选择版本: VisualStudio2022提供多个版本,包括社区版(Community)、专业版(Professional)和企业版(Enterprise)......
  • 2024牛客暑期多校训练营8 I Haitang and Ranking 题解
    乱搞看到\(n=1e5\),时限3s,存在修改操作,很自然的想到根号分治。考虑按照时间分治。对每\(B\)个交换统一处理,\(B\)个交换最多有\(2B\)个元素改变状态,剩下都不变。那么只要对这\(2B\)元素内,暴力枚举,剩下的元素构建数据结构实现二维数点,平面内区间最值。因为\(a,b\)是不......
  • 20240809-python实现TCP通信
    python实现TCP通讯1.0版本(备份)importsocketfromlogUtilsimportlogfromapiimportApidefhandle_client(client_socket,addr):log.info(f"客户端的ip地址和端口号:{addr}")try:whileTrue:#接收客户端发送的数据,这次接收数据的......
  • Android开发基础07-掌握Java语言
    Android开发广泛使用Java作为编程语言,熟练掌握Java语言是十分必要的。1.基础入门知识a.设置开发环境安装JDK(JavaDevelopmentKit):JDK是进行Java开发的必备工具,务必下载安装并配置相应的环境变量。安装IDE(IntegratedDevelopmentEnvironment):推荐使用IntelliJIDEA、E......
  • 今日Java练习:选择题挑战
    题目选自牛客网1.假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。执行下面的方法numQuest(),数组num会变成?privateList<Integer>nums;//precondition:nums.size()>0//numscontainsIntegerobjectspublicvoidnumQuest(){int......