2013-02-05 166 views
-1

我有「一」填充Java數組

一旦我的用戶輸入的所有數據,我希望能夠對用戶輸入的所有值執行XOR操作的用戶定義大小的數組。

通過調整代碼;

int k=1;  
for (int k=0;k<A;k++){ 
k = ^piles[k]; 

*此代碼在循環語句中。 我假設它將我的值(一旦運行XOR運算符)乘以1,這會給我錯誤的值。有什麼想法嗎?

+4

不要爲循環計數器和外部變量使用相同的名稱。 – MrSmith42

+0

與什麼值異或? –

+1

向我們顯示您的代碼。由於重複的局部變量,此處發佈的內容不會編譯。 – jlordo

回答

3

試試這個:

int result=0;  
for (int k=0;k<A;k++){ 
    result ^= piles[k]; 
} 
+0

這就是我用過的,但是一旦它運行XOR運算符,它會乘以1,這會給出錯誤的答案。 7,4,2,1的XOR應爲0,但它給了我1. – user2023112

+0

代碼略有不同(=^vs^=)。我會再檢查一次。 –

+3

你爲什麼初始化結果爲1?如果你只想要數組元素的XOR,它應該被初始化爲0. – beaker

2
Integer[] in = {1,2,4,7}; 
int result = 0; 
for(int i:in) { 
    result ^= i; 
} 
System.out.println(result); //prints 0 
+2

更好的實現 – beaker