Originariamente inviato da oregon
E' uno degli errori più comuni (a runtime) ...
Grazie, ne terrò presente sempre. In tutto ciò non capisco perchè il codice, che ho anche modificato un pò, continua a non funzionare. Mi aggiunge uno zero alla fine del primo vettore che non capisco da dove prende.
codice:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(){
int v[50]={2,3,3,5};
int v1[50]={9,3,5,6,3,11,13,15};
int i=0,duen=8,n=4;
bool ceck=false,first=false;
while(i<n){
ceck=false;
first=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] && first){
cout<<"CECK: "<<v[i]<<" "<<v1[k]<<endl; system("pause");
for(int u=k;u<duen-1;u++){
v1[u]=v1[u+1];
}
duen-=1;
k-=1;
}
if(ceck) first=true;
}
if(!ceck){
duen+=1;
v1[duen]=v[i];
cout<<"\n\n!ceck"<<v[i]<<" "<<v1[duen]<<endl;
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");
}
n-=1;
cout<<"!ceck"<<endl;
for(int c=0;c<n;c++) cout<<v[c]<<" ";
cout<<endl;
}
else{
int z=i+1;
while(z<n){
if(v[i]==v[z]){
for(int k=z;k<n-1;k++){
//cout<<v[z+1]<<endl;
v[k]=v[k+1];
//cout<<z<<" "<<v[z]<<endl;
// system("PAUSE");
}
n-=1;
}
z+=1;
}
i+=1;
}
}
cout<<endl;
for(int n1=0;n1<n;n1++) cout<<v[n1]<<" ";
cout<<endl;
for(int n2=0;n2<duen;n2++) cout<<v1[n2]<<" ";
cout<<endl;
system("pause");
return 0;
}