兩個集合的相等判斷、交集、並集
阿新 • • 發佈:2018-12-02
#include<iostream> using namespace std; const int Size=10; void Get(int a[]); void Judge(int a[],int b[]);//判斷兩函式是否相等 void Intersaction(int a[],int b[]);//求交集 void Union(int a[],int b[]);//求並集 void Get(int a[]) { cout<<"請十位輸入整數:"; for(int i=0;i<Size;i++) { cin>>a[i]; cout<<" "; } } void Judge(int a[Size],int b[Size]) { for(int i=0;i<Size;i++) { if(a[i]!=b[i]) cout<<"兩集合不等!"<<endl;break; if(i==Size-1) cout<<"兩集合相等!"<<endl;break; } } void Intersaction(int a[Size],int b[Size]) { int c[Size]; int t=0; for(int i=0;i<Size;i++) { for(int n=0;n<Size;n++) { if(a[i]==b[n]) c[t]=b[n];t++; } } cout<<"兩集合的交集為:"; for(t=0;t<Size;t++) { for(int m=0;m<Size;m++) { if(c[t]==c[m]||t!=m) break; if(c[t]==c[m]) cout<<c[m]<<" "; } } } void Union(int a[Size],int b [Size]) { int c[Size]; int t=0; for(int i=0;i<Size;i++) { for(int n=0;n<Size;n++) { if(a[i]==b[n]) c[t]=b[n];t++; } } cout<<"兩集合的並集為:"; for(t=0;t<Size;t++) cout<<a[t]; for(t=0;t<Size;t++) { for(int m=0;m<Size;m++) { if(c[t]==c[m]) cout<<c[m]<<" "; } } } int main() { int a[Size],b[Size]; Get(a); cout<<endl; Get(b); Judge(a,b); Intersaction(a,b); Union(a,b); return 0; }
實驗心得:判斷兩個集合是否相等,要從順序和資料入手,在這裡我僅敲了順序、資料一樣的集合判斷演算法,還望老師見諒!