这题不难思路很清晰
#include<bits/stdc++.h>
using namespace std;
struct Student
{
string name;
int num;
};
int main()
{
Student stu[15000];
int N;
cin>>N;
int i=0;
for(i=0;i<N;i++)
cin>>stu[i].name>>stu[i].num;
int average=0,sum=0,min=0,max=0;
for(i=0;i<N;i++)
{
sum+=stu[i].num;//求和
if(max<=stu[i].num)
max=stu[i].num;//找最大值
}
average=sum/N/2;//大家平均数的一半
min=max-average; //最不接近大家平均数的一半
int t;//用来做下标记住谁的数字最接近大家平均数的一半
for(i=0;i<N;i++)
{
if(fabs(stu[i].num-average)<=min)
{
min=fabs(stu[i].num-average);
t=i;
}
}
cout<<average<<" "<<stu[t].name<<endl;
return 0;
}