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