搜索并计算20个整数数组中的单个随机数

时间:2016-04-12 16:53:11

标签: java arrays methods linear-search

我有一个生成20个整数数组的程序。然后在同一范围内生成一个随机数。我试图做的是搜索20个整数的数组并计算出这个单个随机数的次数并打印结果,或者如果整数不存在则显示“不存在”。我觉得我是如此接近,但我得到的随机整数计数不正确。先感谢您。 Perimeteres的搜索方法: •method数据类型为void,因为不会返回任何数据。

•它将有三个参数 - 整数数组,数组的大小以及它将在数组中搜索的值。

•它将搜索数组并计算找到值的次数。

•然后它将打印出找到的值的次数或找不到该值。

我的代码,对不起,如果它没有正确缩进,仍然可以解决这个问题:

import java.util.Scanner;
import java.util.Random;
class Main{
 public static final Random RND_GEN = new Random();
   public int[] createNum(int[] randomNumbers) {
    for (int i = 0; i < randomNumbers.length; i++) {
        randomNumbers[i] = RND_GEN.nextInt(10) + 1;
    }
    return randomNumbers;
}

public void printNum(int[] randomNumbers){
    for (int i = 0; i < randomNumbers.length; i++) {
        System.out.println("Number " + i + " : " + randomNumbers[i]);
    }
    System.out.println("Single # is: " + (RND_GEN.nextInt(10) + 1)); 
}

public void searchArray(int[] randomNumbers,int numSearch) {
int count = 0;
for (int i : randomNumbers) {
    if (i == numSearch) {
        count++;
    }
}
if (count == 0) {
    System.out.println("Single #" + numSearch + " was not found!");
} else {
    System.out.println("Single # "+ numSearch + " was found " + count + "   times");
}
}




public void run() {
    Scanner inputReader = new Scanner(System.in);
    int x = 1;
    do {
        int[] numbers = new int[20];
        numbers = createNum(numbers);
        printNum(numbers);
        int numSearch = RND_GEN.nextInt(10) + 1;
        searchArray(numbers, numSearch);
        System.out.print("Restart Program?, Enter 1 for YES, 2 for NO: ");
        x = inputReader.nextInt();
    } while (x == 1);
}

public static void main(String[] args) {
    Main go = new Main();
    go.run();
}
}

3 个答案:

答案 0 :(得分:0)

你几乎就在那里。您已经完成了创建搜索方法的工作,您只是没有调用它。修改您的searchArray方法以打印出最后出现的次数,因为它是您的要求。

public void searchArray(int[] randomNumbers, int numSearch) {
    int count = 0;

    for (int i : randomNumbers) {
        if (i == numSearch) {
            count++;
        }
    }
    if (count == 0) {
        System.out.println("Single #" + numSearch + " was not found!");
    } else {
        System.out.println("Single # "+ numSearch + " was found " + count + " times");
    }
}

然后您可以这样称呼它:

searchArray(numbers, numSearch);

答案 1 :(得分:0)

您在run()方法中犯了一个小错误:

int numSearch = RND_GEN.nextInt(10) + 1;
System.out.println("Number found this many times: "+ numSearch);

这会为您提供1到10之间的随机数,但您想要计算numbers[0]的实际外观,因此您必须使用searchArray()方法。

因此,您必须添加返回类型并返回count

public int searchArray(int[] randomNumbers,int numSearch) {
        int count = 0;

        for(int i : randomNumbers) {
            if (i == numSearch) {
                count++;
            }
        }
    return count;
 }

然后你得到你的计数:

int numSearch = searchArray(numbers, numbers[0]);

答案 2 :(得分:0)

@Dimi所以这样:

public int searchArray(int [] randomNumbers,int numSearch){         int count = 0;

    for(int i : randomNumbers) {
        if (i == numSearch) {
            count++;
        }
    }
  int numSearch = searchArray(numbers, numbers[0]);
        System.out.println("Single # was found: "+ numSearch+" times");
相关问题