觉得应该是名字输出时的顺序出错了(确信)
#include <bits/stdc++.h>
using namespace std;
struct{
string b;
int c,m,e;
int h,z;
}a[1050];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) {
cin>>a[i].b >>a[i].c >>a[i].e >>a[i].m ;
a[i].z =a[i].c +a[i].e +a[i].m ;
a[i].h =i;
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++)
{
if(a[i].c-a[j].c<=5&&a[i].e-a[j].e<=5&&a[i].m-a[j].m<=5&&a[i].z-a[j].z<=10) {
if(a[i].h <= a[j].h ){
cout<<a[i].b <<" "<<a[j].b <<endl;
}
else cout<<a[j].b <<" "<<a[i].b <<endl;
}
}
}
return 0;
}