两个集合的并、交,相对补,对称差的运算

/*编写程序实现两个集合的并、交,相对补,对称差的运算并判断两个集合是否相等?
(2)功能要求
①输入集合A与集合B的元素。
②输出集合A与B的并、交、相对补、差、对称差运算。
③输出集合A与B是否相等的断定结果。
④输出集合A与B的幂集。*/
#include "stdio.h"
int disc;
void xd(int a[],int b[],int n,int m)
{
    if (n==m&&jj(a,b,n,m)==n)
    {
        printf("相等!\n");
    }
    else
        printf("不相等!\n");
}
int  jj(int a[],int b[],int n,int m)
{
int i,j,k=0;
for (i=0;i

{
for (j=0;j {
if (a[i]==b[j])
{
printf("%d,",a[i]);
k++;
}
}
}
return k;
}
void  bj(int a[],int b[],int n,int m)
{
int i,j,x,k,find=0;
int p[100];
for (i=0;i {
p[i]=a[i];
}
for (j=0;j

{
for (k=0;k {
if (a[k]==b[j])
find=1;
}
if (find==0)
{
p[i]=b[j];
i++;
}
find=0;
}
x=i;
for(i=0;i {
printf("%d,",p[i]);
}
}
 int * xb(int a[],int b[],int n,int m)
{
int i=0,j,k,find=0;
int p[100];


for (j=0;j

{
for (k=0;k {
if (a[k]==b[j])
find=1;
}
if (find==0)
{
p[i]=b[j];
i++;
}
find=0;
}
disc=i;
return p;




}
void xx(int a[],int b[],int n,int m)
{


}
int main()
{
int a[10],b[10];
int i,j,e=0,f=0;
int x,y;
int * q;
int * p;
int aa[100];
int bb[100];


printf ("请输入的A集合的个数N:");
scanf("%d",&x);
printf("请输入B集合的个数M:");
scanf("%d",&y);


printf("集合A:\n");


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


}
printf("集合B:\n");
for (j=0;j {
scanf("%d",&b[j]);
}
     printf("该两集合是否相等:\n");
     xd(a,b,x,y);
     printf("\n");


printf("该两个集合的并集结果如下:\n");
bj(a,b,x,y);
printf("\n");


printf("该两个集合的交集结果如下:\n");
    jj(a,b,x,y);
    printf("\n");
    printf("该A-B集合的相对补集结果如下:\n");
q=xb(b,a,y,x);


for(i=0;i {
   aa[i]=q[i];
printf("%d ",q[i]);
e++;
}




printf("\n");
    printf("该B-A集合的相对补集结果如下:\n");
    p=xb(a,b,x,y);


for(i=0;i {
   bb[i]=p[i];
printf("%d ",p[i]);
f++;
}


printf("\n");


printf("该两个集合的相对差集结果如下:\n");
bj(aa,bb,e,f);
}

你可能感兴趣的:(两个集合的并、交,相对补,对称差的运算)