codice:
int appartiene_af(float, float[], int);
void unione_f(float[], int , float[] , int , float[] , int *);
int main()
{
int n_a, n_b, n_c;
float a[]={1.0,2.0,3.5,5.0,10.0};
float b[]={1.0, 14.2 , 20.0};
float c[8];
int i;
n_a=5;
n_b=3;
unione_f(a,n_a,b,n_b,c,&n_c);
printf("numero degli elementi dell'unione = %d\n", n_c);
for (i=0;i<n_c;i++)
printf(" %f\n",c[i]);
system("PAUSE");
return 0;
}
int appartiene_aF (float chiave, float a[], int n)
{
int i=0;
while (chiave!=a[i] && i<n-1)
i=i+1;
if (chiave == a[i])
return 1;
else
return 0;
}
void unione_f(float a[], int n_a , float b[] , int n_b , float c[] , int *n_c)
{
int i, i_c;
for (i=0;i<n_a;i++);
c[i]=a[i];
i_c=n_a-1;
for (i=0;i<n_b;i++)
{
if (!appartiene_aF(b[i],a,n_a))
{
i_c++;
c[i_c]=b[i];
}
}
*n_c= i_c+1;
}
ricordo ke il problema è che mi da in output (printf) la lista degli elementi dell'insieme unione C con numeri strani ... mentre mi appare giusto il size di C.