## Q.: Write a program to implement union and intersection?

/*   ##########################

Girfa : Student Help
For More Program Visit : http://girfahelp.blogspot.in/p/c-language.html
Program to implement union and intersection
##########################*/
#include<stdio.h>
#include<conio.h>
#define MAX 5
int check_avl(int [],int,int); /* Check a number exist in an array */
void print(int [],int); /* Print an arrar*/
void main()
{
int ar1[MAX],ar2[MAX],uni[MAX*2],ins[MAX];
int uni_index,int_index,flag=0,i,j;
clrscr();
printf("\nFirst Array Input\n");
for(i=0;i<MAX;i++)
{
printf("Enter %d Position number>> ",i+1);
scanf("%d",&ar1[i]);
}
printf("\nSecond Array Input\n");
for(i=0;i<MAX;i++)
{
printf("Enter %d Position number>> ",i+1);
scanf("%d",&ar2[i]);
}

//Merge first array to union
for(i=0,uni_index=0;i<MAX;i++)
{
if(check_avl(uni,ar1[i],uni_index)==1)
uni[uni_index++]=ar1[i];
}
//Merge Second array to union
for(i=0;i<MAX;i++)
{
if(check_avl(uni,ar2[i],uni_index)==1)
uni[uni_index++]=ar2[i];
}
//Merge both array to to Intersection
for(i=0,int_index=0;i<MAX;i++)
{
for(j=0,flag=0;j<MAX;j++)
{
if(ar1[i]==ar2[j])
{
flag=1;
break;
}
}
if(flag==1)
{
ins[int_index++]=ar1[i];
}
}

printf("\n\tFirst Array\n");
print(ar1,MAX);
printf("\n\tSecond Array\n");
print(ar2,MAX);
printf("\n\tUnion Array\n");
print(uni,uni_index);
printf("\n\tIntersection Array\n");
print(ins,int_index);
getch();

}
int check_avl(int ar[],int n,int s)
{
int i,flag=0;
for(i=0;i<s;i++)
{
if(ar[i]==n)
{
flag=1;
break;
}
}
if(flag==1)
return 0;
else
return 1;
}
void print(int ar[],int s)
{
int i;
for(i=0;i<s;i++)
printf("\t%d",ar[i]);
}