Tuesday, May 19, 2009

Set Operations

// TITLE : SET OPERATION //
/* PROBLEM STATEMENT : WRITE A C PROGRAM TO PERFORM FOLLOWING OPERATIONS
ON CHARACTER ARRAY
1-UNION
2-INTERSECTION
3-DIFFERENCE
4-SYMMETRIC DIFFERENCE

*/

#include
#include
#include

void main()
{
char a[10], b [10], c[20];
int i,j,k,m,n,ch;
char h;
clrscr();
printf("Enter length of set 1:");
scanf("%d", &n);
printf("Enter length of set 2:");
scanf("%d", &m);
printf("Enter elements of set 1:");

for(i=0;i {
flushall();
scanf("%c",&a[i]);
}

printf("Enter elements of set 2:");
for(j=0;j {
flushall();
scanf("%c",&b[j]);
}

do
{
printf("\n\nWhich operation you want to perform?");
printf("\n1.Union");
printf("\n2.Intersection");
printf("\n3.Difference");
printf("\n4.Symmetric difference");
printf("\n\nEnter the choice:\t");
scanf("%d",&ch);
switch(ch)
{
case 0:
exit(0);
break;

case 1: //UNION
k=0;
for(i=0;i {
c[k]=a[i];
}
for(i=0;i {
for(j=0;j {
if(a[j]==b[i])
break;
}
if(j==n)
{
c[k]=b[i];
k++;
}
}
for(i=0;i {
printf("%c",c[i]);
}
getch();
break;
/*---------------------------------------------------------------------------*/

case 2: //INTERSECTION
k=0;
for(i=0;i {
for(j=0;j {
if(a[j]==b[i])
break;
}
if(j!=n)
{
c[k]=b[i];
k++;
}
}
for(i=0;i {
printf("%c",c[i]);
}
getch();
break;
/*---------------------------------------------------------------------------*/

case 3: //DIFFERENCE
k=0;
for(i=0;i {
for(j=0;j {
if(a[j]==b[i])
break;
}
if(j==m)
{
c[k]=a[i];
k++;
}
}
for(i=0;i {
printf("%c",c[i]);
}
getch();
break;
/*-----------------------------------------------------------------------------*/
case 4: //SYMMETRIC DIFFERENCE
k=0;
for(i=0;i {
for(j=0;j {
if(a[j]==b[i])
break;
}
if(j==m)
{
c[k]=a[i];
k++;
}
}
for(i=0;i {
for(j=0;j {
if(a[j]==b[i])
break;
}
if(j==n)
{
c[k]=b[i];
k++;
}
}

for(i=0;i printf("%c",c[i]);
break;

}
} while(ch!=0);
getch();
}
/*-------------------------------------------------------------------------*/

No comments:

Post a Comment