#include<iostream>
#include<iomanip>
using namespace std;
const int m=100,n=100;
int main()
{ int A[m],B[n],S[n],C[m+n],D[m];
int a,b,s=0,c,d,*pA,*pB,*pS,*pC,*pD;
cout<<"2016111893 蔡睿"<<endl;
cout<<"註意a包含b!"<<endl;
cout<<"請輸入集合A中元素的個數(不允許大於100個):";
cin>>a;
cout<<"請依次輸入A中的"<<a<<"個元素:"<<endl;
for(pA=A;pA<A+a;pA++)
cin>>*pA;
cout<<"請輸入集合B中元素的個數(不允許大於"<<a<<"個):";
cin>>b;
cout<<"請依次輸入B中的"<<b<<"個元素:"<<endl;
for(pB=B;pB<B+b;pB++)
cin>>*pB;
for(pA=A,pS=S;pA<A+a;pA++)
{ for(pB=B;pB<B+b;pB++)
{ if(*pA==*pB)//求交集
{*pS=*pA;pS++;s+=1;break;}
}
}
cout<<"集合A,B的交集A∩B中的元素依次為:"<<endl;
for(pS=S;pS<S+s;pS++)
cout<<setw(3)<<*pS;cout<<endl;
for(pC=C,c=a+b,pA=A,pB=B;pC<C+c;pC++)
{ if(pC<C+a)
{*pC=*pA;pA++;}
else
{*pC=*pB;pB++;}
}
for(pS=S;pS<S+s;pS++)
{ for(pC=C;pC<C+c;pC++)
{if(*pC==*pS)
{ for(;pC<C+c;pC++)
*pC=*(pC+1);
c-=1;break;
}
}
}//AB均放入C刪掉交集壹次即得補集
cout<<"A和B集合的並集集合A∪B為:"<<endl;
for(pC=C;pC<C+c;pC++)
cout<<setw(3)<<*pC;cout<<endl;
for(pD=D,pA=A,d=a;pD<D+d;pD++)
{ *pD=*pA;pA++;}
for(pS=S;pS<S+s;pS++)
{ for(pD=D;pD<D+d;pD++)
{ if(*pD==*pS)
{ for(;pD<D+d;pD++)
*pD=*(pD+1);d-=1;break;
}//刪掉A中的B
}
}
cout<<"A與B的差集A-B為:"<<endl;
for(pD=D;pD<D+d;pD++)
cout<<setw(3)<<*pD;cout<<endl;