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 の場合、1 回だけ機能するようです。次に起こっているように見えるのは、魔法のように n を 1 に変更することです (最初は 5 です)。 . どうしてこんなことに?
興味深いのは、戻り値の直前に n をエコーすると、正しい値である 5 が表示されることです...
編集。ここでは for ループが適切に機能しますが、問題はまだ存在します。