两个集合的交并差

欢迎加qq群:453398542 学习讨论,会定期分享资料课程,解答问题。

两个集合的交并差

#include<stdio.h>

#define N 100

void S(int n,int a[]){

int i,j,d;

a[0]=rand()%90+10;

for (i=1;i<n;i++){

d=rand()%90+10;

for (j=0;j<i;j++){

if (d==a[j]){

i--;

break;

}

else a[i]=d;

}

}

}

void output(int n,int a[]){

int i;

for (i=0;i<n;i++)

printf("  %d  ",a[i]);

printf("\n");

}

void J(int m,int a[],int n,int b[]){

int i,j,k,s,c[N];

k=0;

for (i=0;i<m;i++){

s=a[i];

for (j=0;j<n;j++){

if (s==b[j])

c[k++]=s;

 

}}

for (i=0;i<k;i++){

printf("  %d ",c[i]);}

}//交集

void B(int m,int a[],int n,int b[]){

int i,j,k,s,c[N];

int flag=0;

for (i=0;i<m;i++){

c[i]=a[i];

}

k=m;

for (i=0;i<n;i++){

s=b[i];

flag=1;

for (j=0;j<m;j++){

if (s==c[j])

flag=0;

}

if (flag==1)

c[k++]=s;

}

for (i=0;i<k;i++){

printf("  %d ",c[i]);}

}//并集

void C(int m,int a[],int n,int b[]){

int i,j,k,flag;

i=j=0;

while (i<m){

flag=1;

   k=a[i];

   for (j=0;j<n;j++){

        if (k==b[j])

        flag=0;

        }

        if (flag==1)

        printf("%d  ",k);

i++;

}

}//差集

int main(){

int m,n,a[N],b[N];

scanf("%d",&m);

S(m,a);           

output(m,a);

scanf("%d",&n);

S(n,b);             

output(n,b);

J(m,a,n,b);

printf("\n");

B(m,a,n,b);

printf("\n");

C(m,a,n,b);

return 0;

}

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值