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...