不用二分直接写(各位帅哥美女给个赞呗)
2026-08-03 09:42:11
发布于:浙江
13阅读
0回复
0点赞
这题其实可以不用二分,用字符串也可以写出来
首先我们定义1个n + 4个字符串用来代表编号、姓名、性别、年龄,并输入
int n;
cin >> n;
string a[n],s[n],k[n],l[n];
for (int i = 0; i < n; i++) {
cin >> a[i] >> s[i] >> k[i] >> l[i];
}
之后我们再定义一个
int p;
cin >> p;
string b[p];
好了之后我们用b[i]来与a[i]判断,找到了之后我们便把a[i],s[i],k[i],l[i]全部输出,并用y来表示有没有找到 ,有为1,没有则输出"No Answer!"
for (int i = 0; i < p; i++) {
int y = 0;
cin >> b[i];
for (int j = 0; j < n; j++) {
if (a[j] == b[i]) {
cout << a[j] << " " << s[j] << " " << k[j] << " " << l[j] << endl;\
y = 1;
break;
}
}
if (!y) {
cout << "No Answer!" << endl;
}
}
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
string a[n],s[n],k[n],l[n];
for (int i = 0; i < n; i++) {
cin >> a[i] >> s[i] >> k[i] >> l[i];
}
int p;
cin >> p;
string b[p];
for (int i = 0; i < p; i++) {
int y = 0;
cin >> b[i];
for (int j = 0; j < n; j++) {
if (a[j] == b[i]) {
cout << a[j] << " " << s[j] << " " << k[j] << " " << l[j] << endl;\
y = 1;
break;
}
}
if (!y) {
cout << "No Answer!" << endl;
}
}
}
这里空空如也








有帮助,赞一个