DSTL Programs
DSTL Programs
Contents
Program 1: Union .......................................................................................................................................... 2
Program 2 : Intersection ............................................................................................................................... 4
Program 3: Set Difference............................................................................................................................. 6
Program 4: Symmetric Difference ............................................................................................................... 8
#include<stdio.h>
int main()
{
int n, n1, n2;
printf("Enter Number of Elements in 1st Array : ");
scanf("%d", &n1);
int a1[n1];
initArray(a1, n1);
printf("Enter Number of Elements in 2nd Array : ");
scanf("%d", &n2);
int a2[n2];
int result[n1+n2];
initArray(a2, n2);
n = unionOfArray(a1, a2, result, n1, n2);
display(a1, n1);
display(a2, n2);
display(result, n);
return 0;
}
int unionOfArray(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
}
if (j == n1)
{
*(r+n++) = *(a2+i);
}
}
return n;
}
int main()
{
int n1, n2, n;
printf("Enter Number of Elements in Set 1 :");
scanf("%d", &n1);
int set1[n1];
initArray(set1, n1);
printf("Enter Number of Elements in Set 2 :");
scanf("%d", &n2);
int set2[n2];
initArray(set2, n2);
int common[n1<n2?n1:n2];
n = intersection(set1, set2, common, n1, n2);
display(set1, n1);
display(set2, n2);
display(common, n);
return 0;
}
int intersection(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
*(r+n++) = *(a1+i);
}
}
}
return n;
}
int main()
{
int n, n1, n2;
printf("Enter Number of Elements in 1st Array : ");
scanf("%d", &n1);
int a1[n1];
initArray(a1, n1);
printf("Enter Number of Elements in 2nd Array : ");
scanf("%d", &n2);
int a2[n2];
int result[n1+n2];
initArray(a2, n2);
n = difference(a1, a2, result, n1, n2);
display(a1, n1);
display(a2, n2);
display(result, n);
return 0;
}
int difference(int *a1, int *a2, int *r, int n1, int n2)
{
int n = 0, j;
for (int i = 0; i < n1; i++)
{
for (j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
break;
}
}
if (j == n2)
{
*(r+n++) = *(a1+i);
}
}
return n;
}
int main()
{
int n, n1, n2, n3;
printf("Enter Number of Elements in Set 1 : ");
scanf("%d", &n1);
int set1[n1];
initArray(set1, n1);
printf("Enter Number of Elements in Set 2 : ");
scanf("%d", &n2);
int set2[n2];
initArray(set2, n2);
int Union[n1+n2];
n = unionOfArray(set1, set2, Union, n1, n2);
int result[n-n1];
int inter[n1>n2?n2:n1];
n3 = intersection(set1, set2, inter, n1, n2);
n = difference(Union, inter, result, n, n3);
display(result, n);
return 0;
}
int unionOfArray(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
*(r+n++) = *(a1+i);
}
for (int i = 0; i < n2; i++)
{
for (j = 0; j < n1; j++)
{
if (*(a2+i) == *(a1+j))
{
break;
}
int intersection(int *a1, int *a2, int *r, int n1, int n2)
{
int j, n = 0;
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
*(r+n++) = *(a1+i);
}
}
int difference(int *a1, int *a2, int *r, int n1, int n2)
{
int n = 0, j;
for (int i = 0; i < n1; i++)
{
for (j = 0; j < n2; j++)
{
if (*(a1+i) == *(a2+j))
{
break;
}
}
if (j == n2)
{
*(r+n++) = *(a1+i);
}
}
return n;
}