在 20 个整数的数组中搜索并计算单个随机数
Search and count for single random number in array of 20 integers
我有一个程序可以生成一个包含 20 个整数的数组。然后在同一跨度内产生一个随机数。我想要做的是搜索 20 个整数的数组并计算这个随机数出现的次数并打印结果,或者如果整数不存在则显示 "not present"。我觉得我很接近,但我得到的随机整数计数不正确。先感谢您。搜索方法的范围:
• 方法数据类型为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();
}
}
你快到了。您已经完成了创建搜索方法的工作,只是没有调用它。修改您的 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);
你的 run()
方法有点错误`:
int numSearch = RND_GEN.nextInt(10) + 1;
System.out.println("Number found this many times: "+ numSearch);
这给了你一个从 1 到 10 的随机数,但是你想计算 numbers[0]
的实际出现次数,所以你必须使用你的 searchArray()
方法。
因此你必须添加一个 return 类型和 return 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]);
@Dimi 所以像这样:
public int searchArray(int[] randomNumbers,int numSearch) {
整数计数 = 0;
for(int i : randomNumbers) {
if (i == numSearch) {
count++;
}
}
int numSearch = searchArray(numbers, numbers[0]);
System.out.println("Single # was found: "+ numSearch+" times");
我有一个程序可以生成一个包含 20 个整数的数组。然后在同一跨度内产生一个随机数。我想要做的是搜索 20 个整数的数组并计算这个随机数出现的次数并打印结果,或者如果整数不存在则显示 "not present"。我觉得我很接近,但我得到的随机整数计数不正确。先感谢您。搜索方法的范围: • 方法数据类型为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();
}
}
你快到了。您已经完成了创建搜索方法的工作,只是没有调用它。修改您的 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);
你的 run()
方法有点错误`:
int numSearch = RND_GEN.nextInt(10) + 1;
System.out.println("Number found this many times: "+ numSearch);
这给了你一个从 1 到 10 的随机数,但是你想计算 numbers[0]
的实际出现次数,所以你必须使用你的 searchArray()
方法。
因此你必须添加一个 return 类型和 return 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]);
@Dimi 所以像这样:
public int searchArray(int[] randomNumbers,int numSearch) { 整数计数 = 0;
for(int i : randomNumbers) {
if (i == numSearch) {
count++;
}
}
int numSearch = searchArray(numbers, numbers[0]);
System.out.println("Single # was found: "+ numSearch+" times");