您的位置:首页 > 编程语言 > C语言/C++

集合:求A、B两个集合的交集、并集和补集的代码(C语言)

2013-10-21 14:59 435 查看
集合:求A、B两个集合的交集、并集和补集的代码(C语言)

 

 

#include <stdio.h>
#define N 100
main(){
int a
,b
,c
,d
;
int aa
,bb
;
int i,j,k=1;
int x=1,y=1,z;
int m,n;
int flag;
printf("please input Number of A:\n");
scanf("%d",&m);
printf("please input  A:\n");
for(i=1;i<=m;i++){
scanf("%d",&a[i]);
}
printf("please input Number of B:\n");
scanf("%d",&n);
printf("please input  B:\n");
for(i=1;i<=n;i++){
scanf("%d",&b[i]);
}
for(i=1;i<=m;i++){
flag=0;
for(j=1;j<=n;j++){
if(a[i]==b[j]){c[k]=a[i];k++;flag=1;continue;}
}
if(flag==0){
aa[x]=a[i];x++;}
}
for(i=1;i<=n;i++){
flag=0;
for(j=1;j<=m;j++){
if(a[j]==b[i]){flag=1;continue;}
}
if(flag==0){
bb[y]=b[i];y++;}
}
printf("A-A与B的交集:共%d个\n",x-1);
for(i=1;i<x;i++){printf("%d ",aa[i]);}printf("\n");
printf("B-A与B的交集:共%d个\n",y-1);
for(i=1;i<y;i++){printf("%d ",bb[i]);}printf("\n");
printf("A与B的交集:共%d个\n",k-1);
for(i=1;i<k;i++){printf("%d ",c[i]);}printf("\n");
printf("A与B的并集:共%d个\n",x+y+k-3);
for(i=1;i<x;i++){printf("%d ",aa[i]);}
for(i=1;i<y;i++){printf("%d ",bb[i]);}
for(i=1;i<k;i++){printf("%d ",c[i]);}printf("\n");

}


测试例:

4

1 2 3 4

8

1 3 4 5 6 7 8 9

运行结果:

 


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: