Salve a tutti,
sto avendo non pochi problemi nel scrivere un programma che stabilisce se due vettori contengono gli stessi elementi(anche in ordine differente), se si devo considerare la possibilità che ci siano valori ripetuti tra quelli memorizzati nei vettori.
Ad esempio
v1  1 3 2 4 3
v2  3 1 4 3 2
contengono gli stessi valori ed il 3 compare 2 volte per vettore.

Io ho risolto così:

#define N 5

int main()
{
int s,cont1,cont2,flag,i,j,v1[N],v2[N];
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=cont1=cont2=0;
flag=0;

for( i=0 ; i<N ; i++ ){
while((j<N) && (flag==0)){
for(s=0;s<N;s++){
if(s!=i){
if(v1[i]==v1[s]){
cont1++;
}
if(v1[i]==v2[s]){
cont2++;
}
}

}
if(cont1==cont2){
printf("L'elemento %d occorre %d volte per vettore",v1[i],cont1);
}
if( v1[i] == v2[j] ){
flag = 1 ;}
j++;
}
if(flag==0){
printf("Vettori non contenenti stessi elementi");
break;
}else{
flag=0;
j=0;
}
}
if(i==N){
printf("Vettori contenenti stessi elementi");
}
return 0;
}

Qualcuno ha qualche suggerimento su come posso migliorarla?