gpt4 book ai didi

arrays - 从随机数组中打印新的素数数组?

转载 作者:行者123 更新时间:2023-12-02 14:04:20 26 4
gpt4 key购买 nike

我是一个 3 周前开始学习 Java 的初学者,我在使用这段代码时遇到了一些问题。

在 main 方法中,我有一个包含 10 个元素的数组。我已经制定了几种喜欢的方法

public static void println(int[] array) ------ 打印和数组

public static boolean isPrime(int el) -----------素数测试。返回 true 或 false

public static int countPrimes(int[] array) --- 返回数组中素数的个数。

这是数组

int[] array = new int{7,5,7,2,11,-4,5,,10,2}

我遇到问题的方法是:

public static int[] primesInArray(int[] array)
{
int n = array.length;
int[] temp = new int[countPrimes(array)];
int j = 0;

for(int i = 0; i < n; i++)
{
if(isPrime(array[i]))
{
temp[j] = array[i];
j= j +1;
}
}
return temp;
}

它应该返回一个由 7 个数字组成的数组,如下所示 {7,5,7,2,11,5,2}但我却得到了原始数组。

我做错了什么。

最佳答案

这个测试的目的是什么?

if(array[i] % array[i] == 0 || array[i] % array[i] == 1)

array[i] % array[i]将始终为 0,因此您的测试始终返回 True。

您不应该使用以下内容吗?

if (isPrime(array[i]))

编辑:正如 Ravi 指出的那样,您永远不会使用临时数组!我认为你需要改变array[i] = array[j];temp[j] = array[i];当修正if测试结果为真。

关于arrays - 从随机数组中打印新的素数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com