1 条题解
-
0
自动搬运
来自洛谷,原作者为

LinkZelda
Be careful, Link.搬运于
2025-08-24 22:20:30,当前版本为作者最后更新于2020-04-19 18:49:25,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这题可以用来练结构体,和自定义 !
- 我们可以声明一个“选手”( )型的结构体,来存储每一个人的分数和他的号码。
struct player//声明一个结构体用来存选手的号数和分数 { int name,score;//顾名思义,name是号码,score是分数 };- 然后怎么找最高分的人呢? 我们可以自定义一个 类型的 函数,自定义 排序。
bool cmp(player a,player b)//自定义结构体排序函数(按分数从大到小排序) { return a.score>b.score; }-
因为我们定义排序函数是从大到小排的,所以第一个人的分数一定是最大的,那我们输出就好了。
-
完整代码(含注释):
#include<iostream> #include<algorithm>//使用 sort ,要调用 algorithm 库 using namespace std; struct player//声明一个结构体用来存选手的号数和分数 { int name,score; }; bool cmp(player a,player b)//自定义结构体排序函数(按分数从大到小排序) { return a.score>b.score; } int main() { player a[10];//声明“选手”类型变量 int s1,s2,s3,s4;//用于输入每个人的分数 for(int i=1;i<=5;i++)//i即为选手号数 { cin>>s1>>s2>>s3>>s4; a[i].name=i; a[i].score=s1+s2+s3+s4; } sort(a+1,a+6,cmp);//自定义排序 cout<<a[1].name<<' '<<a[1].score;//因为是从大到小排,所以第一个人一定是分数最高的 return 0; }
- 1
信息
- ID
- 5423
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者