Ho fatto un piccolo svolgimento. Anche se ho cambiato un pò le carte in tavola, il risultato non cambia. Vedi se non capisci qualcosa.
#include<iostream>
using namespace std;
#include<stdlib.h>
//Prototipi delle funzioni
void input(int &n,float vett[],int num);
bool trovato (float vett[],int n,int num);
void elimina_posizione (int pos,int & n,float (&vett)[100]);
void output(int n,float vett[],int num);
int main()
{
int n1;
int n2;
int n3;
int num;
float vett1[100];
float vett2[100];
//Chiamate delle funzioni
cout<<"Inserisci il riempimento N1\n";
input(n1,vett1,1);
cout<<"V1= "<<endl;
output(n1,vett1,1);
cout<<"Inserisci il riempimento N2\n";
input(n2,vett2,2);
cout<<"V2= "<<endl;
output(n2,vett2,2);
for(int i = 0; i < n1; i++)
{
if(trovato(vett2,n2,vett1[i]))
{
elimina_posizione(i,n1,vett1);
i--;
}
}
output(n1,vett1,1);
system("PAUSE");
return 0;
}
void input(int&n,float vett[],int num)
{
cin>>n;
cout<<"Assegna"<<n<<"elementi del vettore"<<num<<"\n";
for (int i=0;i<n;i++)
cin>>vett[i];
}
bool trovato (float vett[],int n,int num)
{
for (int i=0;i<n;i++)
{
if (vett[i]==num)
return true;
}
return false;
}
void elimina_posizione (int pos,int & n, float (&vett)[100])
{
while (pos < n-1)
{
vett[pos] = vett[pos + 1];
pos++;
}
n--;
}
void output(int n,float vett[],int num)
{
for (int i=0;i<n;i++)
cout<<" "<<vett[i];
cout<<"\n";
}