集合:求A、B两个集合的交集、并集和补集的代码(C语言)
2013-10-21 14:59
435 查看
集合:求A、B两个集合的交集、并集和补集的代码(C语言)
测试例:
4
1 2 3 4
8
1 3 4 5 6 7 8 9
运行结果:
#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
运行结果:
相关文章推荐
- 递增有序的顺序表表示集合,求解两个集合的交集 并集 差集(c语言实现)
- grep和map计算两个集合交集、并集、补集
- 求两个集合的交集,补集,并集
- js取两个数组的交集|差集|并集|补集|去重示例代码
- js取两个数组的交集|差集|并集|补集|去重示例代码
- C++ 求两个集合的交集和并集
- 两个DataTable之间的差集、交集、并集集合(Except、Intersect、Union)
- 求两个集合的交集和并集
- 获取两个DataTable之间的差集、交集、并集集合(Except、Intersect、Union)
- 求两个升序数组的交集、并集、补集
- 利用linux命令sort和uniq求两个文件的交集并集和补集
- Perl技巧 两个数组的取交集,并集与补集
- 两个集合的交集,并集,差
- Oracle 取两个表中数据的交集并集差异集合
- 求两个升序数组的交集,并集,补集
- Oracle 取两个表中数据的交集并集差异集合
- [笔试]两个整数集合求交集并集
- 任意长度的两个整数集合求并集与交集
- AutoCAD.Net/C#.Net QQ群:193522571 LinQ 两个集合求交集、并集