ecco :
codice:
#include <iostream>
#include <stdlib.h>
using namespace std;
const int MAX=100;
void input(int v1[],int v2[],int &n1,int &n2);
int trova(int v1[],int v2[],int n1, int n2);
void elimina ( int v1[], int v2[],int n1, int &n2, int num);
void output( int v2[],int n2,int num);
int main () {
int v1[MAX];
int v2[MAX];
int n1;
int n2;
int num;
input(v1,v2,n1,n2);
num=trova(v1,v2,n1,n2);
elimina(v1,v2,n1,n2,num);
output(v2,n2,num);
system("PAUSE");
return 0;
}
void input(int v1[],int v2[],int &n1,int &n2) {
int i;
cout<<"quanti elementi vuoi inserire in v1?"<<endl;
cin>>n1;
cout<<"quanti elementi vuoi inserire in v2?"<<endl;
cin>>n2;
for(i=0;i<n1;i++){
cout<<"inserisci elementi in v1"<<endl;
cin>>v1[i];
}
for(i=0;i<n2;i++){
cout<<"inserisci elementi in v2"<<endl;
cin>>v2[i];
}
}
int trova(int v1[],int v2[],int n1, int n2) {
int i=0;
int num=0;
int j=0;
while(j<n2){
if(v2[j]%2!=0){
for(i=0;i<n1;i++){
if(v2[j]!=v1[i])
num++;
else
v2[j-num]=v2[j];
}
}
j++;
}
n2-=num;
return num;
}
void elimina ( int v1[], int v2[],int n1, int &n2, int num) {
int i=0,j=0,k;
for(i=0;i<n1;i++)
if(v2[i]%2==1){
for(j=0;j<n2;j++)
if(v2[i]!=v1[j]){
for(k=j;k<n2-1;k++)
v2[k]=v2[k+1];
n2--;
}
}
}
void output( int v2[],int n2,int num) {
if (num==0) {
cout<<"non ho effettuato eliminazioni"<<endl;
}
else
{
cout<<"il numero di eliminati e'"<<num<<endl;
cout<<"il riempimento e'"<<n2<<endl;
cout<<"il vettore e'"<<endl;
for(int i=0;i<n2;i++) {
cout<<v2[i]<<endl;
}
}
}
psotresti trovare errori gravi :S non me la cavo proprio!
grazie in anticipo!