Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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,我被卡住了。。。。。我一直在尝试在方法中使用数组来计算1-100范围内可被10整除的数。 这是我的密码: import java.util.Scanner; import java.util.Random; public class Journal5a { // METHOD public int[] creatArray (int size) { int[] array = new int[size]; Random r = new Random(); for (in

我被卡住了。。。。。我一直在尝试在方法中使用数组来计算1-100范围内可被10整除的数。 这是我的密码:

import java.util.Scanner;
import java.util.Random;
public class Journal5a {
// METHOD

public int[] creatArray (int size)
{
    int[] array = new int[size];
    Random r = new Random();
    for (int i = 0; i < array.length; i++)
        array[i] = r.nextInt(100);
    return array;
}

public  int[] DivByTen()
{
    int x = 0;
    int y[] = this.creatArray(1);
    for (int i = 0; i < y.length; i++)
        if (y[i] % 10 == 0)
        {
            x++;
        }

    return x;
}

public int[] printArray ()
{
    int[]   myArray = this.creatArray(1);
    for (int i = 0; i<myArray.length; i++)
        System.out.println(myArray[i]);
    return myArray;
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    Journal5a j5a = new Journal5a();
    j5a.DivByTen();
}
另一个问题是没有返回DivByTen方法中使用的x。

您的createArray()方法使用0-99之间的随机数填充数组,因此不清楚有多少数字可以除以10

for(int i = 0; i < size; i++) {
 array[i] = i;
}
for(int i=0;i
将创建一个值从0到大小-1的数组


第二个问题是返回类型是int[]而不是int

首先,创建并填充数组。对于从
1
100
的范围,您需要传入
100
,然后在
1
处从
i
开始(或者在初始化数组时将
1
添加到
i

最后,调用上述方法并输出结果

public static void main(String[] args) {
    final int multiple = 10;
    int count = countMultiples(creatArray(100), multiple);
    System.out.printf("There are %d numbers divisible by %d.", count, multiple);
}
输出为

There are 10 numbers divisible by 10.

为什么要随机填充数组来解决问题?
DivByTen
返回一个
int
,而它的类型是
int[]
@ElliottFrisch。这是学校的问题。我是编程新手。另外,我试图得到一个1-100的范围。我已经修改了它,它仍然给我一个随机数。你给你的createArray方法一个1,所以你的数组的大小是1。传递100以获得大小为100的数组
private static int countMultiples(int[] arr, int multiple) {
    int count = 0;
    for (int val : arr) {
        if (val != 0 && val % multiple == 0) {
            count++;
        }
    }
    return count;
}
public static void main(String[] args) {
    final int multiple = 10;
    int count = countMultiples(creatArray(100), multiple);
    System.out.printf("There are %d numbers divisible by %d.", count, multiple);
}
There are 10 numbers divisible by 10.