我有這樣的代碼:陣列和布爾JAVA
public class TestPrimaryArray
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter 5 numbers: ");
int[] numbers = new int[5];
for(int i = 0; i < numbers.length; i++)
{
numbers[i] = scan.nextInt();
boolean isPrime = PrimeArray(numbers);
System.out.println("Is " +numbers[i]+ " a prime? " +isPrime);
}
}
public static boolean PrimeArray(int[] arr)
{
boolean prime = true;
for(int i = 1; i < arr.length; i++)
{
if(arr[i]%2 == 1)
prime = true;
else
prime = false;
}
return prime;
}
}
該程序假設採取來自用戶的輸入並將其放入5的一個維陣列,然後告訴號是否是素數或沒有。我運行我的代碼,它編譯了一切,但是當我看到結果時,它並沒有給我正確的答案。 這裏是它想告訴我,所有的人,除了20是真正的數字11 7 3 5 20
Enter 5 numbers:
11 7 3 5 20
Is 11 a prime? false
Is 7 a prime? false
Is 3 a prime? false
Is 5 a prime? false
Is 20 a prime? false
運行的例子。我不知道我做錯了什麼。我該怎麼辦?
爲什麼'PrimeArray'採取一個數組,如果你爲每個輸入調用它?你有沒有注意到,你爲傳入數組的每個數字設置了變量'prime',並在循環之後返回它的值?所以很明顯,它只能返回數組最後一項的結果。所以請重新使用'PrimeArray'方法。 – Tom
一些提示:你真的認爲所有的奇數都是素數?爲了確定一個數字是否爲素數,爲什麼你需要所有其他數字? – Henry
爲什麼你每次都將整個數組作爲輸入方法'PrimeArray'?首先使用循環來填充數組。在primeArray中使用第二個for循環打印輸出。 – yogidilip