【发布时间】:2015-01-22 12:30:09
【问题描述】:
我有一个班级作业,目标是获取一个数组并通过一种方法运行它,该方法将以相反的顺序打印出数组,然后通过第二种方法运行它以测试数字是否为素数,然后打印没有素数的仍然是相反的顺序数组。我可以得到相反的顺序部分很好,我遇到了质数部分的问题:
public class Driver {
public static void main(String[] args) {
// CTORs
int[] MyArray = { 10, 8, 7, 14, 22, 11 };
int[] myArray2 = new int[7];
// METHOD CALLING
MyArray = reverseOrder(6, MyArray);
MyArray = primeCheck(MyArray, 6);
for (int i = 0; i < myArray2.length; i++)
System.out.println(myArray2[i] + " ");
}// MAIN
/*--------------------ARRAY PRIME TEST---------------------*/
private static int[] primeCheck(int[] myArray, int num) {
//prime
boolean prime = true;
int[] myArray2 = new int[10];
//test all components of an array
for (int i = num + 1 ; i >= 0; i++) {
if (num % i > 0) {
prime = false;
System.arraycopy(myArray, 0, myArray2, 0, 4);
return myArray2;
}
}
return myArray2;
}// ISPRIME REMOVE
}// CLOSE CLASS
我的输出如下:
11 22 14 7 8 10 0
0
0
0
0
0
我真的很生疏,因为这是长时间休息后返回的第一个任务,因此非常感谢任何指导或帮助。
【问题讨论】:
-
for (int i = num + 1 ; i >= 0; i++)看起来不正确。您是否尝试过逐步调试代码以找出问题所在? -
在您的主要检查中,您不检查数组的任何元素。您将元素总数 (6) 与计数器变量进行比较。
标签: java arrays boolean primes