ciao ragazzi,
date due sequenze di numeri A e B con numero di elementi definiti dall utente, devo stampare una sequenza C di numeri presenti sia in A che in B.. riesco perfettamente a realizzare la prima parte del programma, in cui l'utente inserisce i dati..e poi non riesco a continuare..
codice:#include <iostream> #include <cmath> #include <stdlib.h> using namespace std; main () int n=0; // NMERO DI ELEMENTI DI A int i; // i rappresenta i numeri contenuti nell'array A int A[n];//ARRAY A int m=0; //NUMERI DI ELEMENTI DI B int j; // j rappresenta i numeri contenuti nell'array B int B[m]; // ARRAY B cout<<"Questo è un programma che legge due sequenze A e B rispettivamente di interi n ed m dati di input e ne determina e stampa l'intersezione insiemistica"<<endl<<endl; cout<<"Dammi il numero di elementi della prima sequenza: "<<endl; cin>>n; for(i=0; i<n; i++) { cout<<"Dammi un numero: "; cin>>A[n]; } cout<<"Dammi il numero di elementi della seconda sequenza: "<<endl; cin>>m; for(j=0; j<m; j++) { cout<<"Dammi un numero: "; cin>>B[m]; } // FINO A QUI HO INSERITO LE SQUENZE DI NUMERI DI A E DI B //lo scopo dell'esercizio, quello di far funzionare il programma, scrivendolo nel modo piu semplice //possibile.. come faccio? //ho provato a mettere un ciclo while (che cercasse il primo elemento di A in B) dentro a un ciclo for che ripetesse il ciclo while per ogni elemento di A..ma non riesco!! cosa sbaglio nella sintassi dei cicli? for (i=0; i<n; i++) { j = 0; while(j<m && A[i]!=B[j]) { j++; } //FINCHE L'ELEMENTO DI A PROCESSATO E DIVERSO DAL PRIMO ELEMENTO DI B, ALLORA CONFRONTA TUTTI GLI ELEMENTI DI B CON L'ELEMENTO DI A PROCESSATO if(j<m && A[i]==B[j]) { cout<<j<<endl; } //SE TROVO CHE HANNO UN ELEMENTO IN COMUNE LO SCRIVO } return 0; }

Rispondi quotando