#include<iostream>
using namespace std;
int main() {
int m, n;
cout << "number of a" << endl;
cin >> m;
cout << "number of b" << endl;
cin >> n;
int a[m];
int b[n];
int i, j;
for (i = 0; i < m; i++)
{
cin >> a[i];
}
for (j = 0; j < n; j++)
{
cin >> b[j];
}
cout << "∩:{";//交集
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (a[i] == b[j])
cout << a[i];
}
}
cout << "}" << endl;
cout << "∪:{";//并集
int c[i];
int k = 0;
for(i = 0;i<m;i++)
c[i] = a[i];
for(i = 0;i<n;i++)
{
for(j = 0;j<m;j++)
if(b[i]==c[j])break;//将b中与a不一样的加入a中
if(j == m){
c[m+k] = b[i];k++;
}
}
for(i = 0;i<m+k;i++)
cout<<c[i];
cout << "}" << endl;
int q;
cout<<"1.a-b"<<endl;
cout<<"2.b-a"<<endl;
cin>>q;
cout<<"相对差:{";
if(q == 1){
for (i = 0; i < m; i++)
{for (j = 0; j < n; j++)
{ if (a[i] == b[j])
break; }
if (j >= n)
{
cout << a[i];
}} }
else if(q == 2)
{
for (j = 0; j < n; j++)
{for (i = 0; i < m; i++)
{ if (a[i] == b[j])
break; }
if (i >= m)
{
cout << b[j];
}} }
cout<<"}"<<endl;
cout<<"对称差为:{";
for (i = 0; i < m; i++)
{for (j = 0; j < n; j++)
{ if (a[i] == b[j])
break; }
if (j >= n)
{
cout << a[i];
}}
for (j = 0; j < n; j++)
{for (i = 0; i < m; i++)
{ if (a[i] == b[j])
break; }
if (i >= m)
{
cout << b[j];
}}
cout<<"}";
return 0;
}
刚开始时我求并集时将b中与a不同的加上交集所以出错
浙公网安备 33010602011771号