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;
}