数组的交并差代码

#include<iostream>
using namespace std;
    int x,y;
int Del(int a[],int n,int b[])
{
    for(int i=0;i<n;i++)
    {
        if(a[i]==a[i+1])
        {
            a[i]=-1;
        }
    }
    int j=0;
    for(int i=0;i<n;i++)
    {
        if(a[i]!=-1)
        b[j++]=a[i];
    }
    return j;
}
int Cha(int a[],int m,int b[],int n)
{
    int flag;
    for(int i=0; i<m;i++)
    {
        flag=0;
        for(int j=0;j<n;j++)
        {
         if(a[i]==b[j])
         {
             flag=1;
             break;
         }
        }
    if(flag==0)
    cout<<a[i]<<" "; 
   }
}
int Bing(int a[],int b[],int bbing[]){
   int count;
   int i,j;
   int aa[100],bb[100];
   int aaa,bbb;
   aaa= Del(a,x,aa);
   bbb= Del(b,y,bb);
    int flag;
    int kkk=aaa;
    for(i=0;i<bbb;i++)
    {
        flag=0;
        for(j=0;j<aaa;j++)
        {
            if(bb[i]==aa[j])
            {
            flag=1;
            break;
            }
        }
        if(flag==0)
        {
            aa[kkk++]=bb[i];
        }
    }
     for(i=0;i<kkk;i++)
     {
        cout<<aa[i]<<" ";
        bbing[i] = aa[i];
     }
     cout<<endl;
    return i;
}
int Jiao(int a[],int b[],int c[])
{
   int count;
   int i,j;
   int aa[100],bb[100];
   int aaa,bbb;
   aaa= Del(a,x,aa);

    bbb= Del(b,y,bb);
     count=0;
     for(i=0;i<aaa;i++)
     {
         for(j=0;j<bbb;j++)
         {
             if(bb[j]==aa[i])
             {
                c[count++]=aa[i];
             }
         }

     }
     cout<<count<<endl;
     for(i=0;i<count;i++)
     {
        cout<<c[i]<<" ";
     }
     cout<<endl;
     return i;
}
int show()
{
    cout<<"1--------集合的交集"<<endl;
    cout<<"2--------集合的并集"<<endl;
    cout<<"3--------集合的差集"<<endl;
}
int main()
{
    show();
    
    int p,q,n;
       int bbing[100],a[100],b[100],c[100],i,j;
       x=y=0;
   cout<<"请输入集合A的元素,直到输入负数结束"<<endl;
   for(i=0;i<100;i++)
   {
     cin>>a[i];
     if(a[i]<0)
     break;
     x++;
     }
    cout<<"请输入集合B的元素,直到输入负数结束"<<endl;
   for(i=0;i<100;i++)
   {
     cin>>b[i];
     if(b[i]<0)
     break;
     y++;
     }
   while(1)
   {
       cout<<"请选择你要进行的操作"<<endl;
        cin>>n;
        if(n==1)
        q=Jiao(a,b,c);
        if(n==2)
        p=Bing(a,b,bbing);
        if(n==3)
        Cha(bbing,p,c,q);
   }

}

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

小皓同学

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值