【发布时间】:2016-10-04 15:24:41
【问题描述】:
我正在尝试创建一个程序,允许用户输入选定数量的数字,作为回报,用户会得到两个列表。一个显示哪些数字是素数,另一个给出非素数。为什么这不起作用?当我希望它们在单独的数组中时,我最终将所有数字放在同一个数组中。在 isPrime 方法中将 isPrime 初始化为 true 时,所有数字都进入素数数组,而当我将其初始化为 false 时,则进入 notPrime 数组。
public static void main(String[] args) {
System.out.println("How many numbers do you want to input?");
Scanner in = new Scanner(System.in);
int number = in.nextInt();
int[] values = new int[number];
for(int i = 0; i < values.length; i++) {
System.out.println("Give value number " + (i+1) + ":");
values[i] = in.nextInt();
}
int[] prime = new int[values.length];
int[] notPrime = new int[values.length];
for(int i = 0; i < values.length; i++) {
boolean erPrimtall = erPrimtall(values[i]);
if(isPrime == true) {
prime[i] = values[i];
} else {
notPrime[i] = values[i];
}
}
System.out.println("Prime numbers:");
for(int i = 0; i < values.length; i++){
System.out.println(prime[i]);
}
System.out.println("Other numbers:");
for(int i = 0; i < values.length; i++){
System.out.println(notPrime[i]);
}
}
inn.close();
}
static boolean isPrimtall(int values) {
boolean isPrime = true;
for(int i = 2; i < Math.sqrt(values); i++) {
if(values % i == 0) {
isPrime= false;
break;
}
}
return isPrime;
}
【问题讨论】:
-
请解释“不起作用”是什么意思,并告诉我们到目前为止您为排除故障所做的工作。另请访问help center 并阅读How to Ask 以了解如何有效地使用本网站。
-
您的代码有错字:
verdier未定义。它应该是values。