devo fare questo semplice esercizio in C:
Scrivere una funzione int diffvals(int A[], int B[], int n) che presi in input due array A e B, ognuno di n interi, ritorna il numero di valori distinti che o sono presenti in A ma non in B oppure sono presenti in B ma non in A.
Es:
A = {1,2,1,3,3} B = {5,2,2,5,2} diffvals(A, B, 5) ritorna 3

io la funzione l'ho fatta in questo modo:

codice:
int diffvals(int a[], int b[], int n){
    int j,k,Fa=1,Fb=1,count=0;
    
    for(int i=0;i<n;i++){
        j=0; k=0;
        
        while(Fa==1 && j<n){
            if(a[i]!=b[j])
                Fa=1;
            else
                Fa=0;
            
            j++;
        }
        
        while(Fb==1 && k<n){
            if(b[i]!=a[k])
                Fb=1;
            else
                Fb=0;
            
            k++;
        }
        
        if(Fa==1)
            count++;
        
        if(Fb==1)
            count++;
        
    }
    
    return count;
}
però è sbagliata perchè se, come nell'esempio, ci sono due valori uguali nello stesso vettore, la funzione conta entrambi. Sapreste aiutarmi voi? io ho pensato di mettere tutti i valori distinti (comprese le ripetizioni) in un terzo vettore e poi fare la verifica li ma so che non è giusta come cosa