【发布时间】:2011-04-21 10:22:19
【问题描述】:
我是 3 周前开始使用 java 的初学者,我对这段代码有一些问题。
在主要方法中,我有一个包含 10 个元素的数组。 我已经做了好几种喜欢的方法
public static void println(int[] array) ------ 打印和排列
public static boolean isPrime(int el) ----------- 主要测试。返回真或假
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}
但是我取回了原始数组。
我做错了什么。
【问题讨论】:
-
我没有看到你在哪里使用临时数组?这个条件 "array[i] % array[i] == 1" 总是评估为真。逻辑似乎有缺陷
标签: arrays methods static primes