Salve a tutti, mi scuso in partenza se commetterò degli errori ma è la seconda volta che uso questo forum e non sono esperto.
Come leggete da titolo ho un problema con un esercizio sugli array in c++.
questo è il testo:
Scrivere un programma che legge due sequenze A e B rispettivamente di n ed m interi
(n ed m dati di input, < 100), e ne determina e stampa l'intersezione insiemistica
(ovvero, tutti e soli gli elementi comuni alle due sequenze). Stampare un opportuno
messaggio se l'intersezione risulta vuota. N.B. Si assuma per semplicità che i numeri
immessi siano tutti diversi tra loro.
Allora questo è il mio programma.
codice:
#include <iostream>
using namespace std;
int main(){
int a1[100];
int b2[100];
int n,a,z;
int m,b,x;
int j;
a=0;
b=0;
j=0;
cout << "Dimmi il numero degli elementi della prima sequenza" << endl;
cin >> n;
for ( a=0; a<n ;a++){
cout <<"Dammi un numero";
cin >> a1[a];
cout << endl;
}
cout << "Dimmi il numero degli elementi della seconda sequenza" << endl;
cin >> m;
for ( b=0; b<m ;b++){
cout <<"Dammi un numero";
cin >> b2[b];
cout << endl;
}
cout <<"L'intersezione tra le due sequenze date è ";
a = 0;
b = 0;
while(a < n){
while(b < m){
z = a1[a];
x = b2[b];
if(z = x){
j = j +1;
cout << z ;
}
b = b+1;
}
b = 0;
a = a+1;
}
if (j = 0)
cout << " vuota" << endl;
cout << endl;
system("pause");
return 0;
}
Il problema viene fuori solo nell'ultima parte del testo esattamente nell'ultimo if, in cui a quanto pare entra tutte le volte e mi stampa tutti gli elementi dell'array b2 anche se gli dico di stampare quelli di a1.
Sapreste aiutarmi?