int count(int *a, int *b, int n) {
int i=0,j=0,roz=0;
while(i<n) {
while(j<n) {
if(a[i]==b[j])
roz++;
j++;
}
i++;
}
return roz;
}
n是a的大小,或b陣列(兩者都是相同大小的)。嵌套的while循環似乎只能工作一次,因爲i = 0。接下來的事情似乎正在發生,將n奇蹟般地變爲1(它在開頭是5),這樣嵌套的while不會循環第二次。爲什麼?嵌套田地用C
有趣的是,呼應n右回報顯示正確的價值,這是5 ...
編輯之前。 for循環在這裏正常工作,但問題仍然存在。
那麼,如果您讀取數組的末尾,則可能會調用未定義的行爲。也就是說,很難看出這會如何導致n被修改。你怎麼知道這是事實? –
所以這應該算在兩個數組中相等的數字,對吧? – 2013-01-05 15:12:54
這是正確的.. – khernik