输入集合A、B和全集C,求两集合的交集、并集、补集、差集

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//输入集合A、B和全集C,求两集合的交集、并集、补集、差集
 
/*
并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
交集: 以属于A且属于B的元素为元素的集合成为A与B的交(集)
差:以属于A而不属于B的元素为元素的集合成为A与B的差(集)
补集:A的补集C-B
*/
/*
例如:A={1,2,3} B={2,3,4} C={1,2,3,4,5}
AB并集为={1,2,3,4}
交集为={2,3}
A补集={4,5}
AB差集为={1}
 
*/
#include <iostream>
#include <vector>
using  namespace  std;
 
int  main()
{
         vector< int > A,B,C;
         int  temp;
         
         cout<< "input A,finished by a character" <<endl;
         while (cin>>temp)
                 A.push_back(temp);
         cin.clear() ; //清除错误状态
         cin.ignore() ; //跳过无效数据
         
         
         cout<< "input B,finished by a character" <<endl;
         while (cin>>temp)
                 B.push_back(temp);
         cin.clear() ;
         cin.ignore() ;
         
         
         cout<< "input C,finished by a character" <<endl;
         while (cin>>temp)
                 C.push_back(temp);
         cin.clear();
         cin.ignore();
         
         
         
         //求交集
         vector< int > AND;
         
         
         for ( int  i=0;i<A.size();i++)
                 for  ( int  j=0;j<B.size();j++)
                         if (A[i]==B[j])
                                 AND.push_back(B[j]);
         cout<< "交集为" <<endl;
         //显示交集
         for (i=0;i<AND.size();i++)
                 cout<<AND[i]<< " " ;
         cout<<endl;
                         
         //求并集
         AND.clear();
 
         //先把A的元素依次加入
         for (i=0;i<A.size();i++)
                 AND.push_back(A[i]);
         
         //加入B中有且与A的每一个元素都不相等的元素
         
         for ( int  j=0;j<B.size();j++)
         {
                 int  k=0;
                 for (i=0;i<A.size();i++)
                         if (B[j]!=A[i])
                                 k++;
                 if (k>=A.size())
                         AND.push_back(B[j]);
         }
 
         //显示并集               
         cout<< "并集为" <<endl;
         for (i=0;i<AND.size();i++)
                 cout<<AND[i]<< " " ;
         cout<<endl;
                                 
         return  0;
}
相关文章
|
机器学习/深度学习 编解码 算法
改进UNet | 透过UCTransNet分析ResNet+UNet是不是真的有效?(一)
改进UNet | 透过UCTransNet分析ResNet+UNet是不是真的有效?(一)
1108 0
|
存储 SQL 关系型数据库
大数据量下数据库分页查询优化方案汇总
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。
721 2
|
11月前
|
负载均衡 安全 应用服务中间件
nginx的强大功能和如何使用?
nginx的强大功能和如何使用?
642 2
|
11月前
|
机器学习/深度学习 数据采集 算法
一个 python + 数据预处理+随机森林模型 (案列)
本文介绍了一个使用Python进行数据预处理和构建随机森林模型的实际案例。首先,作者通过删除不必要的列和特征编码对数据进行了预处理,然后应用随机森林算法进行模型训练,通过GridSearchCV优化参数,最后展示了模型的评估结果。
339 0
|
消息中间件 Kafka Apache
Flink CDC+Kafka 加速业务实时化
阿里巴巴开发工程师,Apache Flink Committer 任庆盛,在 9 月 24 日 Apache Flink Meetup 的分享。
Flink CDC+Kafka 加速业务实时化
|
存储 关系型数据库 MySQL
19. Mysql 循环语句
19. Mysql 循环语句
307 1
|
定位技术
ArcGIS:如何对栅格图像进行地理配准和定义投影?
ArcGIS:如何对栅格图像进行地理配准和定义投影?
4325 1
|
XML JSON API
教你如何使用API接口获取数据!
使用API接口获取数据的过程通常涉及到几个步骤,包括了解API、注册获取API密钥、编写代码调用API并处理返回的数据。下面是一个详细的教程。
|
测试技术 Linux Go