#include <stdio.h>
#include<stdlib.h>
int*jiao(int *a,int *b,int m,int n);
int*bing(int *a,int *b,int m,int n);
int*cha(int *a,int *b,int m,int n);
int main()
{
int *a,*b,m,n,i;
a=(int*)malloc(sizeof(int)*m);
b=(int*)malloc(sizeof(int)*n);
printf("输入集合A中的元素个数:\n");
scanf("%d",&m);
printf("输入集合A中的元素:\n");
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
printf("输入集合B中的元素个数:\n");
scanf("%d",&n);
printf("输入集合B中的元素:\n");
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
//int *j;
jiao(a,b,m,n);
//printf("%d",j[1]);
bing(a,b,m,n);
cha(a,b,m,n);
return 0;
}
int*jiao(int a[],int b[],int m,int n)
{
int c[1000],j,count, i;
int *k=c;
count=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i]==b[j])
{ count++;
c[count]=a[i];
break;
}
}
}
printf("集合A,B的交集为:\n{");
for(i=1;i<=count;i++)
{
printf("%d",c[i]);
}
printf("}\n");
return k;
}
int*bing(int a[],int b[],int m,int n)
{
int i,j,c[1000],*k;
int v;
for(v=0;v<m;v++)
{
c[v]=a[v];
}
//int flag=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(b[i]==a[j])
{
//flag=1;
break;
}
}
if(b[i]!=a[j])
{
c[v++]=b[i];
}
}
printf("集合A,B的并集为:\n{");
int q=0;
for(;q<v;q++)
{
printf("%d",c[q]);
}
printf("}\n");
return k;
}
int*cha(int a[],int b[],int m,int n)
{
int i,j,*k=a;
int p=0;
int c[200];
printf("集合A,B的差为:\n{");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i]==b[j])
break;
}
if(a[i]!=b[j])
{
c[p++]=a[i];
}
}
int v=0;
for(;v<p;v++)
printf("%d",c[v]);
printf("}");
return k;
}
实现集合的交并补
猜你喜欢
转载自blog.csdn.net/weixin_43935092/article/details/88636358
今日推荐
周排行