Header Ads Widget

Program to find the difference of two set.

 How to find the difference of two sets:-

If A and B are two sets, then their difference is given by A - B or B - A. 

 If A = {2, 3, 4} and B = {4, 5, 6} 

A - B means elements of A which are not the elements of B.
 

i.e., in the above example A - B = {2, 3} 

B -A means elements of B which are not the elements of A. 

i.e., in the above example B -A = {5, 6} 


Solution:-

#include<stdio.h>
int main()
{
int a[10],b[10],c[10],d[10],m=0,k=0,n1,n2,l,i,j;
printf("Enter size of set A");
scanf("%d",&n1);
printf("Enter element of set");
for( i=0;i<n1;i++)
scanf("%d",&a[i]);
printf("Enter size of set B");
scanf("%d",&n2);
printf("Enter element of set");
for( i=0;i<n2;i++)
scanf("%d",&b[i]);
// logic for find A-B
for( i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
if(b[j]==a[i])
break;
}
if(j==n2)
{
// here we check that is element already present in the set
// if present than ignore it otherwise add to the difference set
for(l=0;l<k;l++)
{
if(c[l]==a[i])
break;
}
if(l==k)
{
c[k]=a[i];
k++;
}
}
}
// logic for find B-A
for( i=0;i<n2;i++)
{
for(j=0;j<n1;j++)
{
if(b[i]==a[j])
break;
}
if(j==n1)
{
// here we check that is element already present in the set
//if present than ignore it otherwise add to the difference set
for(l=0;l<m;l++)
{
if(d[l]==b[i])
break;
}
if(l==m)
{
d[m]=b[i];
m++;
}
}
}
printf("Difference of A-B is:-\n");
for(i=0;i<k;i++)
{
printf("%d ",c[i]);
}
printf("\n");
printf("Difference of B-A is:-\n");
for(i=0;i<m;i++)
{
printf("%d ",d[i]);
}
return 0;
}

Output:-

Enter size of set A 4
Enter element of set
1 2 4 3
Enter size of set B 4
Enter element of set
3 5 4 6
Difference of A-B is:-
1 2
Difference of B-A is:-
5 6


Recommended Post :-

HCL Coding Questions:-

Capgemini Coding Questions:-

Companies interview:-

Full C course:-    

Key points:-

Cracking the coding interview:-

 Array and string:-

Tree and graph:-

Hackerearth Problems:-

Hackerrank Problems:-

Data structure:-

 MCQs:-