Ho risolto così:
codice:
#define N 5

int main()
{
    int pos,tmp,s,cont1,flag1,flag,i,j,v1[N],v2[N];
//Acquisizione dei due vettori
    for(i=0;i<N;i++){
        printf("Inserisci un elemento-->");
        scanf("%d",&v1[i]);
    }
    for(i=0;i<N;i++){
        printf("Inserisci un elemento-->");
        scanf("%d",&v2[i]);
    }

    i=j=flag=flag1=s=0;
    cont1=1;
//Ordinamento v1
    for(i=0;i<N-1;i++){
        tmp=v1[i];
        pos=i;
        for(j=i+1;j<N;j++){
            if(v1[j]<tmp){
                tmp=v1[j];
                pos=j;
            }
        }
        v1[pos]=v1[i];
        v1[i]=tmp;
    }
    tmp=pos=0;
//Ordinamento v2
    for(i=0;i<N-1;i++){
        tmp=v2[i];
        pos=i;
        for(j=i+1;j<N;j++){
            if(v2[j]<tmp){
                tmp=v2[j];
                pos=j;
            }
        }
        v2[pos]=v2[i];
        v2[i]=tmp;
    }
//Confronto Vettori
    for(i=0;i<N;i++){
        if(v1[i]!=v2[i]){
            flag=1;
        }
    }
//Stampa del risultato
    if(flag==0){
        printf("Vettori contenenti stessi elementi\n");
        i=0;
    while((i<N+1)){
        if(v1[i]==v1[i+1]){
            s=v1[i];
            cont1++;
            flag1=1;
        }else{
            if(flag1==1){
                printf("Il numero %d occorre %d volte in entrambe i vettori\n", s, cont1);
                flag1=0;
                cont1=1;
            }
        }
        i++;
    }
    }else{
            printf("Vettori non contenenti stessi elementi");
    }
    return 0;
}
L'unico problema è che ad esempio:
v1=[2,2,3,3,3]
mi stampa solo che il 2 occorre 2 volte e dovrebbe stamparmi anche che il 3occorre 3 volte.
Invece se assegno:
v1=[3,3,4,4,4]
mi stampa correttamente sia il 3 sia il 4, dov'è l'errore?