题目来源:蓝桥杯2017初赛 C++ C组B题
题目描述
为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组(以下称A组,B组,C组)。
每个小组的学生名单分别在【A.txt】,【B.txt】和【C.txt】中。
每个文件中存储的是学生的学号。
由于工作需要,我们现在想知道:
既参加了A组,又参加了B组,但是没有参加C组的同学一共有多少人?
输出格式
输出一个整数表示答案
问题分析
这是一道填空题。
需要编写一个离线程序来计算结果。
下载三个文件作为输入数据,运行结果填空即可。
AC的C++语言程序如下:
/* LQ0126 兴趣小组 */
#include <iostream>
#include <map>
//#define DEBUG
using namespace std;
const int A = 150, B = 250, C = 250;
int main()
{
#ifdef DEBUG
map<string, int> m;
string a;
for (int i = 1; i <= A; i++) {
cin >> a;
m[a]++;
}
for (int i = 1; i <= B; i++) {
cin >> a;
m[a]++;
}
for (int i = 1; i <= C; i++) {
cin >> a;
if (m[a] != 0)
m[a] = 0;
}
map<string, int>::iterator iter;
int cnt = 0;
for (iter = m.begin(); iter != m.end(); iter++)
if (iter->second == 2) cnt++;
printf("%d\n", cnt);
#else
printf("20\n");
#endif
return 0;
}
C++程序计算兴趣小组交集
946

被折叠的 条评论
为什么被折叠?



