该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我的思路是先让数组a中的数和数组b中的数一个个比较,相同的放入一个数组c,不同的放入另一个数组aa,
再让数组b中的数和数组a中的数一个个比较,相同的直接不管,不同的放入数组bb。
比如
输入数组a为abcde
数组b为def
则c【1】=d ,c【2】=e
aa【1】=a ,aa【2】=b,aa【3】=c
bb【1】=f
最后输出的时候交集输出c
差集a-b输出aa
差集b-a输出bb
并集输出aa,bb,c
但是代码运行结果不对,不知道哪里错了。
以下是代码和运行图
#include
#define N 20
main(){
char a[N],b[N],c[N],d[N];
char 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 Number of B:\n");
scanf("%d",&n);
printf("please input A:\n");
for(i=1;i<=m;i++)
{
scanf("%c",&a[i]);
}
printf("please input B:\n");
for(i=1;i<=n;i++)
{
scanf("%c",&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(b[i]==a[j])
{
flag=1;
continue;
}
}
if(flag==0)
{
bb[y]=b[i];
y++;
}
}
printf("A-A与B的交集:\n");
for(i=1;i
printf("B-A与B的交集:\n");
for(i=1;i
printf("A与B的交集:\n");
for(i=1;i
printf("A与B的并集:\n");
for(i=1;i
for(i=1;i
for(i=1;i
printf("\n");
return 0;
}