2012-08-24 48 views
0

我想將一個數組的每個元素與另一個數組的所有元素進行比較。我想實現的是,如果在另一個數組中存在的元素,結果爲0,否則結果= 1將數組的元素與另一個數組的所有元素進行比較

int m,n; 

for(int i=0; i<m; i++) { 
    for(int j=0; j<n; j++) { 
    if(i==j) { 
     result =0; 
     //perform a task 
     break; 
    } 

    if(i!=j) { 
     result = 1; 
     //perform another task 
     break 
    } 

    } 
} 

然而,我無法實現我理想中的第二個if()

+6

數組在哪裏? –

+1

你真的很想做什麼很不清楚。你是否希望你的'任務'爲每個可能的元素組合運行一次,或者如果只有在整個數組中有任何匹配元素或者沒有匹配元素時才贏得一個任務或另一個任務運行運行?換句話說,如果你有兩個看起來像「{1,2,3}」和「{4,5,6}」的數組,你想讓'不匹配'任務運行一次還是九次? –

+0

我想'不匹配'只運行一次。謝謝 – fclopez

回答

2

調整您的代碼有點(無論數據類型,你實際上是使用替代char用):

char A[50]; 
char B[50]; 

for(int i=0; i<50; i++) {  // Iterate through A from 0 to 50 
    for(int j=0; j<50; j++) { // Iterate through B from 0 to 50 
    if(A[i] == B[j]) { 
     // Item from A exists in B 
    } 
    else { 
     // Item from A does not exist in B 
    } 
    } 
} 

注意「else」代碼會爲每個元素運行一次。

我們可以做得更好。首先製作一個搜索數組的實用功能:

bool item_exists(char item, char[] array, int array_len) { 
    for (int i=0; i<array_len; i++) { 
     if (array[i] == item) 
      return true; 
    } 
    return false; 
} 

然後使用它。

char A[50]; 
char B[50]; 

for(int i=0; i<50; i++) { 
    if (item_exists(A[i], B, 50)) { 
     // Item from A exists in B 
    } 
    else { 
     // Item from A does not exist in B 
    } 
} 
+0

謝謝jonathon。你能否向我解釋爲什麼它更好地使用char?我打算使用整數元素的數組,加上我必須處理數千個元素。 – fclopez

+0

然後使用int。這只是一個例子。 –

相關問題