问题标题: 酷町堂:谁会

0
0
已解决
郁俊阳
郁俊阳
修练者
修练者

/*

题目描述 Description

酷町堂举办了一次文件操作模拟赛,共有4道题目,现在要按照4道题目的平均分从高到低排序。如果分数相同,保持在输入中的顺序输出。

 

要求:求平均分要定义成一个返回值为double类型的结构体函数。

 

输入描述 Input Description

第一行,一个整数n,表示人数

接下来n行,每行有准考证号、第一题分数、第二题分数、第三题分数、第四题分数,准考证号是一个5位的字符串,由字母和数字构成

 

输出描述 Output Description

n行,每行一个排序后的准考证号

 

样例输入 Sample Input

5

BM001 100 0 0 100

BM002 100 20 80 80

BM003 100 100 0 100

BM004 100 100 100 0

BM005 100 100 100 100

样例输出 Sample Output

BM005

BM003

BM004

BM002

BM001

数据范围及提示 Data Size & Hint

n<=10000

*/

#include<iostream>

#include<string>

#include<algorithm>

using namespace std;

struct Student{

string id;

int s1,s2,s3,s4;

double a(){

return (s1+s2+s3+s4)/4.0;

}

};

bool cmp(Student a, Student b){

if (a.a()!=b.a()){

return a.a()>b.a();

}

return a.a()>b.a();

}

Student students[10005];

int main() {

int n;

cin>>n;

for(int i=1;i<=n;i++){

cin>>students[i].id>>students[i].s1>>students[i].s2>>students[i].s3>>students[i].s4;

}

sort(students+1,students+n+1,cmp);

for(int i=1;i<=n;i++){

cout<<students[i].id<<endl;

}

return 0;

}

 

郁俊阳在2024-10-06 12:41:23追加了内容

5517

郁俊阳在2024-10-06 12:50:36追加了内容

看代码16行


1
0
程俊尧
程俊尧
新手守护
新手守护

你这代码多少分的?

WA/TLE/RE/……

0
毕博雨
毕博雨
中级光能
中级光能

在结构体里加一个id2,输入时把id2置为i,排序函数里在if后面写一个判断id2的大小语句(题目里说如果平均分一样,按输入先后排序)

0
程俊尧
程俊尧
新手守护
新手守护

结构体+cmp

输入

排序

输出

我要回答