你的代码存在一些问题。首先,在输入部分,你使用了 cin 进行输入,并且在字符串数组的大小上做了限制(10002)。然而,根据题目描述,题解审核志愿者数量 $n$ 和新人数量 $l$ 可能会很大,大于你定义的数组大小。因此,你需要使用动态数组而不是固定大小的数组。
其次,在输出部分,你没有按照题目要求的字典序从小到大的顺序输出下周所有题解审核志愿者的用户名。你可以使用 sort 函数对用户名进行排序,然后再输出。
以下是修正后的代码:
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n, m, l;
cin >> n >> m >> l;
vector<string> yu(n), leave(m), join(l);
for (int i = 0; i < n; i++) {
cin >> yu[ i];
}
for (int i = 0; i < m; i++) {
cin >> leave[ i];
}
for (int i = 0; i < l; i++) {
cin >> join[ i];
}
sort(yu.begin(), yu.end());
for (int i = 0; i < n; i++) {
if (find(leave.begin(), leave.end(), yu[ i]) == leave.end()) {
cout << yu[ i] << endl;
}
}
sort(join.begin(), join.end());
for (int i = 0; i < l; i++) {
cout << join[ i] << endl;
}
return 0;
}
这样,你的代码就可以正确输出题目要求的结果了。
如果问题已经解决,请设置最佳答案 |