实验十七数组

1.求二维数组中最大元素的值

【问题描述】定义一个4行5列的二维数组并输入元素的值,求出二维数组中最大元素的值,并输出。

【输入形式】

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
54 67 12 89 54

【输出形式】

the max value is:89

————————————————————————————————————————

问题思路分析 :

本题不需要创建二维数组

接受四行数据,分别求出四行数据各自的最大值,并将各自的最大值进行比较选择出最大的那个

代码实现如下 :

import java.util.Scanner;

public class demo1 {
    public static void main(String[] args) {
        // 接受数据
        Scanner nc = new Scanner(System.in);
        // 处理数据
        int[] Max = new int[4]; // 存储每行的最大元素值的数组

        for (int j = 0; j < 4; j++) {
            int[] nums = fun(nc.nextLine()); // 处理用户输入的一行数据
            int max = 0; // 当前行的最大元素值

            // 遍历当前行的元素,找出最大值
            for (int i = 0; i < nums.length; i++) {
                if (max < nums[i]) {
                    max = nums[i];
                    Max[j] = max; // 将最大值存储到Max数组中
                }
            }
        }

        int num = Max[0]; // 最大值初始化为Max数组的第一个元素
        // 遍历Max数组,找出其中的最大值
        for (int i = 0; i < Max.length; i++) {
            if (Max[i] > num) {
                num = Max[i];
            }
        }
        System.out.printf("The max value is: %d", num);
    }

    // 将输入字符串解析为整型数组
    static int[] fun(String nums) {
        String[] arr1 = nums.split(" ");
        int[] arr2 = new int[arr1.length];
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = Integer.parseInt(arr1[i]);
        }
        return arr2;
    }
}

2.求差集

【问题描述】

两个集合的差集定义如下:
集合A、B的差集,由所有属于A但不属于B的元素构成。
输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
【输入形式】

从标准输入接收集合中的自然数元素,以空格分隔。
其中,每个集合都不输入重复的元素。

【输出形式】

输出差运算后集合中的元素,以空格分隔。输出元素按从小到大排序
如果A、B的差集为空集,则不输出任何数值。

【样例输入】

2 8 3 4
6 1 4 9

【样例输出】

2 3 8

————————————————————————————————————————

问题思路分析:

这个题目要求我们计算两个集合的差集。给定两个集合A和B,每个集合中的元素都是自然数,我们需要找出属于集合A但不属于集合B的元素,并按从小到大的顺序输出。

首先,我们使用ArrayList来表示集合A和集合B,以便动态添加和删除元素。然后,我们从标准输入读取集合A和集合B的元素,每个元素以空格分隔。

接下来,我们将输入的元素转换为整型数组,并对数组进行排序,以便后续处理。我们使用方法来完成这个转换操作,该方法接收一个字符串数组作为参数,将字符串数组中的元素转convertToIntArray方法换为整型,并返回对应的整型数组。

然后,我们将排序后的数组添加到ArrayList A和ArrayList B中。接下来,我们使用removeAll方法从集合A中移除属于集合B的元素,这样就得到了集合A和集合B的差集。

最后,我们检查集合A的大小。如果集合A为空集,则不输出任何元素。否则,我们按照从小到大的顺序输出集合A中的元素,每个元素之间以空格分隔。

代码实现: 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class SetDifference {
    public static void main(String[] args) {
        // 创建ArrayList来存储集合A和集合B
        ArrayList<Integer> A = new ArrayList<>();
        ArrayList<Integer> B = new ArrayList<>();

        // 接收数据
        Scanner sc = new Scanner(System.in);
        // 将输入的字符串按空格分割为字符串数组,并转换为整型数组
        int[] arrA = convertToIntArray(sc.nextLine().split(" "));
        int[] arrB = convertToIntArray(sc.nextLine().split(" "));

        // 对数组进行排序
        Arrays.sort(arrA);
        Arrays.sort(arrB);

        // 将排序后的数组添加到ArrayList A和ArrayList B中
        for (int i = 0; i < arrA.length; i++) {
            A.add(arrA[i]);
        }
        for (int i = 0; i < arrB.length; i++) {
            B.add(arrB[i]);
        }

        // 计算集合A和集合B的差集
        A.removeAll(B);

        // 输出差集元素,按从小到大的顺序,每个元素之间以空格分隔
        if (A.size() == 0) {
            // 差集为空集,不输出任何元素
        } else {
            for (int i = 0; i < A.size(); i++) {
                System.out.print(A.get(i) + " ");
            }
        }
    }

    // 将字符串数组转换为整型数组的方法
    static int[] convertToIntArray(String[] arr) {
        int[] nums = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            nums[i] = Integer.parseInt(arr[i]);
        }
        return nums;
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值