Trovate l'errore vi prego...C++
Ragazzi alcuni amici mi hanno chiesto di fare un esercizio sugli array...
allora io tutto bello gasato sono partito in quinta e .....ho fatto una figuraccia!!!
L'esercizio richiede di fare l'unione di 2 array senza copiare i duplicati...cioè se inserisco nel primo array 1 2 3 4 5 e nel secondo array 1 2 3 4 6 il terzo array dovrebbe contenere 1 2 3 4 5 6.
Ho provato con questo codice che logicamente sembra corretto ma praticamente no perchè non so per quale motivo non copia gli elementi in c...Il codice è questo:
Grazie a tutti...
ciao
allora io tutto bello gasato sono partito in quinta e .....ho fatto una figuraccia!!!
L'esercizio richiede di fare l'unione di 2 array senza copiare i duplicati...cioè se inserisco nel primo array 1 2 3 4 5 e nel secondo array 1 2 3 4 6 il terzo array dovrebbe contenere 1 2 3 4 5 6.
Ho provato con questo codice che logicamente sembra corretto ma praticamente no perchè non so per quale motivo non copia gli elementi in c...Il codice è questo:
#include <iostream> using namespace std; int main(){ int const N=50; int n; int a[N], b[N], c[2*N]; cout<<"Quanti elementi vuoi inserire? "<<endl; cin>>n; int i,j,k=0; for(i=0;i<2*n;i++){ c[i]=0; //inizializzo tutti gli elementi a zero per non avere gli indirizzi di memoria. } //creo l'array A: for(i=0;i<n;i++){ cout<<"Inserisci l'elemento di posizione "<<i+1<<" dell'array A:"<<endl; cin>>a[i]; } //creo l'array B: for(i=0;i<n;i++){ cout<<"Inserisci l'elemento di posizione "<<i+1<<" dell'array B:"<<endl; cin>>b[i]; } //nei primi n elementi di c copia a. for(i=0;i<n;i++){ c[i]=a[i]; } //l'indice k mi servirà per l'inserimento nelle caselle successive in c e quindi lo inizializzo a n k=n; bool trovato=false; int x; for(i=0;i<n;i++){ x=b[i]; //do a x il valore di b[i] per effettuare il controllo. for(j=0;j<n;j++){ if(c[j]==x){ //se l'elemento di c[j] è uguale ad un elemento di b... trovato=true; //il valore trovato prende true. } if(!trovato) //altrimenti se il valore di trovato=false; c[k]=x; //Inserisci nella posizione k il valore di x. k++; // Aumenta k in modo che il prossimo inserimento sia nella cella successiva. } } cout<<"L'array A e': "<<endl; for(i=0;i<n;i++){ cout<<a[i]<<" "; } cout<<endl; cout<<"L'array B: e': "<<endl; for(i=0;i<n;i++){ cout<<b[i]<<" "; } cout<<endl; cout<<"L'array in comune e': "<<endl; for(i=0;i<k;i++){ cout<<c[i]<<" "; } cin>>ws; }
Grazie a tutti...
ciao
Risposte
"tecnos":
E poi dicono che gli ingegneri informatici non sanno programmare....
Suppongo fosse per me...
