Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按照说明显示这两个数组_Java - Fatal编程技术网

Java 如何按照说明显示这两个数组

Java 如何按照说明显示这两个数组,java,Java,我正在为我的Java课程做这个作业,所以说明是: 编写一个程序,生成1到100范围内的100个随机整数,并将它们存储在数组中。然后,程序应该调用一个类方法,该方法提取偶数乘以数组的数字并返回数组。然后,程序应该调用另一个方法,将不是4的偶数倍数的数字提取到一个单独的数组中,并返回该数组。然后应显示两个阵列。” 公共类分配8 { 公共静态void main(字符串[]args) { 整数[]个数=新整数[100]; 对于(int i=1;i

我正在为我的Java课程做这个作业,所以说明是:

编写一个程序,生成1到100范围内的100个随机整数,并将它们存储在数组中。然后,程序应该调用一个类方法,该方法提取偶数乘以数组的数字并返回数组。然后,程序应该调用另一个方法,将不是4的偶数倍数的数字提取到一个单独的数组中,并返回该数组。然后应显示两个阵列。”

公共类分配8
{
公共静态void main(字符串[]args)
{
整数[]个数=新整数[100];
对于(int i=1;i

显示的结果是​ 总是0和其他一些随机数的组合。

您有几个小的逻辑错误

  • 您在
    8
    处启动
    m
    y
    关闭,这没有意义,因为它们旨在跟踪您将插入的索引

  • 使用表达式
    if(x%4==0&(x/4)%2==0)
    确定数字是否可以被四整除,但是
    if(x%4==0)
    足够了

  • 在您的循环中:

  • 当您应该检查
    n
    时,您正在检查
    k
    是否可被4整除。将其更改为:

    for (int n : numbers) {
        if(n % 4 != 0) {
          NEMO4N[k] = n;
          k++;
        }
    }
    

    我不会提供工作代码,因为这似乎是一个家庭作业。

    这里是工作解决方案-需要Java8

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        List c1 = generateArray(100);
        Divisors divisors = getDivisors(c1, 4);
        print("Even", divisors.evens);
        print("Odd", divisors.odds);
    }
    
    private static void print(String what, List<Integer> items) {
        StringJoiner joiner = new StringJoiner(",");
        items.stream().map(String::valueOf).forEach(joiner::add);
        System.out.println(what + " divisors are: " + joiner.toString());
    }
    
    private static Divisors getDivisors(List<Integer> c1, int i) {
        Divisors divisors = new Divisors();
        divisors.value = i;
        c1.stream()
                .filter(value->value>=i)// it is not dividable, so ill skip
                .forEach(value -> {
            int modulo = value % i;
            List<Integer> arr = modulo == 0 ? divisors.evens : divisors.odds;
            arr.add(value);
        });
        return divisors;
    }
    
    private static List<Integer> generateArray(int size) {
        return IntStream.rangeClosed(1,100).limit(size).boxed().collect(Collectors.toList());
    }
    
    static class Divisors {
        int value;
        List<Integer> evens = new LinkedList<>();
        List<Integer> odds = new LinkedList<>();
    }
    

    为什么你要从
    8
    开始
    m
    y
    呢?
    (int)(Math.random()*((100)+1))+1
    生成超出范围的值,因为[1..101]谢谢你。我在想,(x%4==0&(x/4)%2==0)可能会给出四的偶数,这就是为什么我把“&”放在这里,为什么你需要
    (x/4)%2==0
    ?奇数不能被4整除,因为它可以被2整除,使之成为偶数。。。。。
    for (int n : numbers) {
        if(n % 4 != 0) {
          NEMO4N[k] = n;
          k++;
        }
    }
    
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        List c1 = generateArray(100);
        Divisors divisors = getDivisors(c1, 4);
        print("Even", divisors.evens);
        print("Odd", divisors.odds);
    }
    
    private static void print(String what, List<Integer> items) {
        StringJoiner joiner = new StringJoiner(",");
        items.stream().map(String::valueOf).forEach(joiner::add);
        System.out.println(what + " divisors are: " + joiner.toString());
    }
    
    private static Divisors getDivisors(List<Integer> c1, int i) {
        Divisors divisors = new Divisors();
        divisors.value = i;
        c1.stream()
                .filter(value->value>=i)// it is not dividable, so ill skip
                .forEach(value -> {
            int modulo = value % i;
            List<Integer> arr = modulo == 0 ? divisors.evens : divisors.odds;
            arr.add(value);
        });
        return divisors;
    }
    
    private static List<Integer> generateArray(int size) {
        return IntStream.rangeClosed(1,100).limit(size).boxed().collect(Collectors.toList());
    }
    
    static class Divisors {
        int value;
        List<Integer> evens = new LinkedList<>();
        List<Integer> odds = new LinkedList<>();
    }
    
    Even divisors are: 4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100
    Odd divisors are: 5,6,7,9,10,11,13,14,15,17,18,19,21,22,23,25,26,27,29,30,31,33,34,35,37,38,39,41,42,43,45,46,47,49,50,51,53,54,55,57,58,59,61,62,63,65,66,67,69,70,71,73,74,75,77,78,79,81,82,83,85,86,87,89,90,91,93,94,95,97,98,99