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.
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.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; }
Sapreste aiutarmi?

Rispondi quotando