stepz00zy @ 2024-08-02 17:42:23
#include <bits/stdc++.h>
using namespace std;
int stu,alpot[1001],tst;
struct point
{
string name;
int y,s,yg;
}a[1001];
int main()
{
cin>>stu;
for(int i=1;i<=stu;i++)
{
cin>>a[i].name>>a[i].y>>a[i].s>>a[i].yg;
}//读入
for(int i=1;i<=stu;i++)
{
alpot[i]=a[i].y+a[i].s+a[i].yg;
}//记录总分
sort(alpot,alpot+stu+1);//排序
tst=alpot[stu];
for(int i=1;i<=stu;i++)
{
if(a[i].y+a[i].s+a[i].yg==tst) cout<<a[i].name<<" "<<a[i].y<<" "<<a[i].s<<" "<<a[i].yg;
}//逐个排查总分是否等于tst
return 0;
}
求助
by stepz00zy @ 2024-08-02 17:44:42
测试点#1没过,看了测试点没问题
(好像)
by hyl_____ @ 2024-08-02 17:51:07
别人都说了,输出最靠前的辣位童鞋
by hyl_____ @ 2024-08-02 17:51:45
不用排序,直接比较,条件为大于,就能找到最靠前那位
by stepz00zy @ 2024-08-02 17:53:27
补个注释:
for(int i=1;i<=stu;i++)
{
alpot[i]=a[i].y+a[i].s+a[i].yg;
by stepz00zy @ 2024-08-02 17:56:36
@hyl_____ 已关
代码
[求大佬]
by hyl_____ @ 2024-08-02 17:56:59
#include <bits/stdc++.h>
using namespace std;
int stu,alpot[1001],tst=-1;
struct point
{
string name;
int y,s,yg;
}a[1001];
int main()
{
cin>>stu;
for(int i=1;i<=stu;i++)
{
cin>>a[i].name>>a[i].y>>a[i].s>>a[i].yg;
}//读入
for(int i=1;i<=stu;i++)
{
alpot[i]=a[i].y+a[i].s+a[i].yg;
}//记录总分
int the_most;
for(int i=1;i<=stu;i++)
{
if(alpot[i]>tst)
{
tst=alpot[i];
the_most=i;
}
}
cout<<a[the_most].name<<" "<<a[the_most].y<<" "<<a[the_most].s<<" "<<a[the_most].yg;
return 0;
}
by stepz00zy @ 2024-08-02 18:03:18
谢
by HuangSiHan3116 @ 2024-08-02 19:42:11
@stepz00zy
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,ma=-1,mb=-1,mc=-1;//n个学生,
//ma等于最厉害的学生的语文;
//mb等于最厉害的学生的数学;
//mc等于最厉害的学生的英语。
string mx;//最厉害的学生。
cin>>n;
for(long i=1;i<=n;i++){
string x;//第i个学生。
long a,b,c;//分数
cin>>x>>a>>b>>c;//输入
if((ma+mb+mc)<(a+b+c)){//比一比,是现在那个最厉害的学生厉害还是这个学生厉害,
//如果是这个学生厉害
mx=x;
ma=a;
mb=b;
mc=c;
//把分数换一下,他变成最厉害的学生。
}
}
cout<<mx;
printf(" %lld %lld %lld\n",ma,mb,mc);//输出
return 0;
}
by stepz00zy @ 2024-08-05 17:18:31
谢 @HuangSiHan3116