for(i=0;
i<8;
i++) { if(arr[i]) printf("%d",Ture);
else printf("%d",False);
} printf(" ");
} //输出集合元素 voidprin]) { int i;
p;
for(i=0;
i<8;
i++) if(arr[i]) printf("%d",arr[i]);
printf("} ");
} /对补集 voiddifferent(int arr[]) { int i;
printf("A的绝对补集={");
for(i=0;
i<8;
i++) if(!
arr[i]) pri //输出补集对应的元素项 printf(" printf(" ");
printf("补集对应的计算机编码为: ");
for(i=0;
i<8 { if(arr[ printf("%d",False);
else printf("%d",Ture);
} printf(" ");
} //输入第二个集合的元素 voidscan(int arr[]) { int i;
while(1) { scanf("%d",&i);
if(i>=1&&i<=8) arr[i-1]=i;
if(i=1为结束标志 break;
} printf("集合B={") for(i=0;
i<8;
i++) if(arr[i printf("%d",i+1);
//输出补集对应的元素项 printf("}");
printf(" ");
printf("该集合对应的计算机编码为: ") print(arr);
//求已知两个集合的并集 voidplusint arr1[]) { int i,arry[8]={0};
//对数组进行初始化时,先将数组中的元素全部置零 for(i=0;
i<8;
i++) { if(arr[i]!
=0) arry[i]=arr[i];
if(arr1[i]!
= arry[i]=arr1[i];
} // printf("输出俩个集合的并集: ");
printf("为={");
f;
i++) { if位置不为0,说明集合中有该项元素 printf("%d",arry[i]);
} printf ");
printf("该集合对应的计算机编码为: ");
print( } //求两个集合的交集 voidsame(int arr[],int arr1[]) { int j,t0};
for(j=0;
j<8;
j++) if(arr[j]!
=0&&arr1[j]!
=0) thesame[j]=arr[j];
printf("输出俩个集合的交集: ");
printf("A和B的交集={");
for(j=0;
j<8;
j++) if(thesame[j]) //对应位置不为0,说明集合中有该项元素 printf("%d",thesame[j]);
printf("} ");
printf("该集合对应的计算机编码为: ");
print(thesame);
} //求两个集合的相对补集 voidxdiffer(int arr[],int arr1[]) { int k,xdiffer[8]={0};
for(k=0;
k<8;
k++) if(arr[k]!
=0&&arr1[k]==0) xdiffer[k]=arr[k];
printf("B对A的相对补集为(即A-B):{");
for(k=0;
k<8;
k++) if(xdiffer[k]) //对应位置不为0,说明集合中有该项元素 printf("%d",xdiffer[k]);
printf("} ");
printf("对应的计算机编码为: ");
print(xdiffer);
} void main() { int i,arry[8]={0},arry1[8]={0};
//对数组进行初始化时,先将数组中的元素全部置零 int differ[8]={0},differ1[8]={0};
//定义两个数组,来存放求得的相对补集 printf("输入集合元素: ");
while(1) { scanf("%d",&i);
if(i>=1&&i<=8) arry[i-1]=i;
if(i==-1) //以负1为结束标志 break;
} printf("集合A={");
for(i=0;
i<8;
i++) if(arry[i]) printf("%d",i+1);
//输出补集对应的元素项 printf("}");
printf(" ");
printf("该集合对应的计算机编码为: ");
print(arry);
printf("输出原集合的绝对补集: ");
different(arry);
printf("输入第二个集合元素: ");
scan(arry1);
printf("集合A和B的并集");
plus(arry,arry1);
same(arry,arry1);
xdiffer(arry,arry1);
//xdiffer(arry1,arry);
for(i=0;
i<8;
i++) if(arry[i]!
=0&&arry1[i]==0) differ[i]=arry[i];
//printf("B对A的相对补集为(即A-B):");
//printing(differ);
//printf("该集合对应的计算机编码为: ");
//print(differ);
for(i=0;
i<8;
i++) if(arry[i]==0&&arry1[i]!
=0) differ1[i]=arry1[i];
printf("A对B的相对补集为(即B-A):");
printing(differ1);
printf("该集合对应的计算机编码为: ");
print(differ1);
printf("集A和B的对称差");
plus(differ,differ1);
} 内容来自网友回答
请问如何用C语言代码实现两个集合的交,并,相对补,对称差的运算并判断两个集合是否相等?
最好可以输出集合一的幂集