質問を投稿してから、現在行っているコードを投稿します。私はそれを手に入れるのにかなり近いように感じますが、私は理解できないように見える部分で立ち往生しています。ここに行きます:
質問:N個の数値を格納するベクトルを作成します。コンソールを介してN個の非負の数をアレイに入力します。次に、N個の数からM個の素数のみを格納する別のベクトルを作成します。
これまでの私のコード:
import java.util.*;
public class VectorPrimes {
public static Vector<Integer> inputVc = new Vector<Integer>();
public static Vector<Integer> primeVc = new Vector<Integer>(inputVc);
public static boolean isPrime(int n) {
boolean prime = true;
for (int i = 2; i * i <= n; i+= 2) {
if (n % i == 0) {
prime = false;
break;
}
}
return prime;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out
.println("This program will take input of positive numbers and output"
+ " prime numbers, if any, from the input numbers.");
System.out
.println("Input a positive number to check for prime numbers: ");
boolean looping = true;
while (looping) {
System.out
.println("Input '0' to finish inputting numbers and print the primes.");
String userin = scan.nextLine();
int input = Integer.parseInt(userin);
if (input != 0) {
System.out.println("Enter next number: ");
inputVc.add(input);
} else if (input == 0) {
//Integer[] inputArray = inputVc.toArray(new Integer[inputVc.size()]);
looping = false;
System.out.println(inputVc);
System.out.print(primeVc);
System.exit(0);
}
}
}
}
それが最善の方法ではないと確信していますが、それは私が今のところ持っていることです。明確にするために、入力ベクトル(inputVc)から入力された数値を配列(inputArray)に入れ、素数を素数ベクトル(primeVc)に格納して出力するのに問題があります。3つまたは4つの異なる方法を試しましたが、primeVcベクトルに格納するものが何も取得できず、印刷が空白のままになります。
私はコードを求めていません。私が理解しようとしているのは、primeVcベクトルに入力された素数を取得して印刷する方法です。もちろん、inputVc番号はisPrimeメソッドを介して実行し、trueの場合はprimeVcベクトルに追加する必要がありますが、ここで問題が発生していると確信しています。
何が見えますか?私は間違いなく何かが欠けていて、私の人生のためにそれを理解することはできません。