Ciao a tutti, come da titolo, c'è un punto di questo programma che non ho capito per quale motivo mi va a modificare il vettore v, pure lavorando sul vettore v1. Ve lo evidenzio, facendolo girare noterete che dopo l'istruzione v1[++due]=v[i], il vettore v[i] cambia nel secondo elemento. Vi prego di aiutarmi dato che il perchè mi è sconosciuto.
codice:/* Nome del programma: unionearray.cpp Note : Assegnato un array A monodimensionale di N interi con ripetizioni di lunghezza =N. Assegnato un array B monodimensionale di N interi con ripetizioni di lunghezza =2N Trasformare l'array A nell'array pari all'intersezione di A e B e l'array B nell'array pari alla loro unione. */ #include <cstdlib> #include <iostream> using namespace std; int main(){ int v[4]={1,5,3,5}; int v1[8]={9,3,5,6,3,11,13,15}; int i=0,duen=8,n=4; bool ceck=false; while(i<n){ ceck=false; for(int k=0;k<duen;k++){ cout<<v[i]<<" "<<v1[k]<<endl; if(!ceck && v[i]==v1[k]) ceck=true; if(ceck && v[i]==v1[k]){cout<<"CECK: "<<v[i]<<" "<<v1[k]<<endl; system("pause"); for(int n=k;n<duen-1;n++){ v1[n]=v1[n+1]; } duen--; } } cout<<endl; for(int c=0;c<n;c++) cout<<v[c]<<" "; cout<<endl; if(!ceck){ v1[++duen]=v[i]; duen++; cout<<v1[duen]<<endl; cout<<endl; for(int c=0;c<n;c++) cout<<v[c]<<" "; cout<<endl; for(int z=i;z<n-1;z++){ cout<<v[z+1]<<endl; v[z]=v[z+1]; cout<<z<<" "<<v[z]<<endl; system("PAUSE"); } } else i++; } system("pause"); return 0; }
Grazie



Rispondi quotando