Informatică, întrebare adresată de mirunadansp6incb, 9 ani în urmă

Se dau doi vectori cu câte n elemente, numere naturale. Verificați dacă cei doi vectori conțin exact aceleași elemente.
Programul va afișa pe ecran mesajul DA, dacă cei doi vectori conțin exact aceleași elemente, respectiv NU, în caz contrar.
IMI DA DOAR 50 DE PUNCTE ..UNDE AM GRESIT?

# include
using namespace std;
int main(){
int a[1000],b[1000],n,i,j;
cin>>n;

for(i=1;i<=n;i++){
cin>>a[i];
}

for(j=1;j<=n;j++){
cin>>b[j];
}



for(i=1;i<=n;i++){

for(j=1;j<=n;j++){

if(a[i]!=b[j]){
cout<<"NU";
return 0;
}
}
}

cout<<"DA";

return 0;
}

Răspunsuri la întrebare

Răspuns de fredyrychfred
5
if(a[i]!=b[j])......de aici in jos e greseala
poti folosi un ok
if(a[i]==b[j])ok=1;
asa mai trebuie sa folosesti inca o varabila....mai complicat.
O varianta este sa sortezi ambii vectori si verifici daca a[i]==b[i]
for(i=1;i<=n;i++)
if(a[i]!=b[j])ok=1;
if(ok==1)cout<< "nu";
else cout << " da";

un exemplu pentru programul tau,sa vezi de ce e gresit...:
n=5
a:1,5,8,3,7
b:7,1,5,3,8
teoretic ar trebui sa afiseze :da,dar afiseaza :nu.
la inceput verifici daca 1 este diferit de 7 ....este si afisezi nu.....nu l mai cauti in b pe 1...

fredyrychfred: daca nu ai inteles si vrei rezolvarea completa sa ma anunti
mirunadansp6incb: Am inteles,Multumes mult!
mirunadansp6incb: aaa..si mi-a dat cele 50 de puncte pentru cazurile unde se afisa doar da
Alte întrebări interesante