数组参数proplem

时间:2016-04-10 00:32:09

标签: 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 (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();
}

所以我的输出是:

there is 10 numbers divisible by 10

另一个问题是DivByTen方法中使用的x没有被返回。

2 个答案:

答案 0 :(得分:0)

你的createArray()方法用0-99的随机数填充数组,因此不清楚10可以分割多少数字。

for(int i = 0; i < size; i++) {
 array[i] = i;
}

将创建一个值为0到size -1的数组。

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

答案 1 :(得分:0)

首先,创建并填充数组。对于范围1100,您需要传入100,并从i开始1(或将1添加到i {1}}初始化数组时;)

private static int[] creatArray(int size) {
    int[] arr = new int[size];
    for (int i = 0; i < size; i++) {
        arr[i] = i + 1;
    }
    return arr;
}

接下来,计算一些multiple的倍数。像,

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.