Trovate l'errore vi prego...C++

Splair
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:
#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
elgiovo
"tecnos":
E poi dicono che gli ingegneri informatici non sanno programmare.... :wink:

Suppongo fosse per me...

tecnos1
:wink:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.