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

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

 

 

#include <stdio.h>
#define N 100
main(){
	int a[N],b[N],c[N],d[N];
	int aa[N],bb[N];
	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

运行结果:

 

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页