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 is the size of a, or b array (both are of the same size). The nested while loop seems to work only once, for i = 0. The next thing that seems to be happening is magically changing n into 1 (it is 5 at the beginning), so that the nested while doesn’t loop the second time. Why is that so?
The interesting thing is that echoing n right before the return displays the right value, which is 5…
EDIT. For loops work properly here, but the question is still present.
You never reset the value of
jto 0.