當前位置:編程學習大全網 - 編程語言 - c++編程 交並補集

c++編程 交並補集

可以用指針

#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;

  • 上一篇:誰知道UG軟件的快捷鍵?
  • 下一篇:學習c++之前得準備寫什麽東西?
  • copyright 2024編程學習大全網