并且下载了第一个数据对照输出了二三十个都没问题,烦请大佬们看看
#include<iostream>
#include<algorithm>
#include <string>
using namespace std;
struct Student {
string s;//存名字
int a, b, c;//存语文数学英语的分数
int total = a + b + c;
}stu[100000];
bool cmp(int i, int j) {
for (int k = 0; j < min(stu[i].s.size(), stu[j].s.size()); k++) {
if (stu[i].s[k] != stu[j].s[k]) return stu[i].s[k] < stu[j].s[k];//比较字典序
}
}
int main() {
int n;
int total;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> stu[i].s >> stu[i].a >> stu[i].b >> stu[i].c;//输入三科分数
}
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (abs(stu[i].a - stu[j].a) <= 5 && abs(stu[i].b - stu[j].b) <= 5 && abs(stu[i].c - stu[j].c) <= 5 && abs(stu[i].total - stu[j].total) <= 10) {
if (cmp(i, j)) {
cout << stu[i].s << " " << stu[j].s;
}
else {
cout << stu[j].s << " " << stu[i].s;
}
cout << endl;
}
}
}
return 0;
}
会不会是结尾多输出了一个回车的原因,但我不知道如何修改输出回车的结束条件