问题标题: 酷町堂:www

0
0
已解决
高宇辰
高宇辰
新手光能
新手光能

5517   考试成绩统计

经验值:800 时间限制:1000毫秒 内存限制:128MB

题目描述 De**ion

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

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

输入描述 Input De**ion

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

输出描述 Output De**ion

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<cmath>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
struct stu{
 char name;
 int s1,s2,s3,s4;
 int pos;
 int score;
 }a[10010];
 bool cmp(stu x,stu y){
 if(x.score!=y.score){
 return x.score>y.score; 
  }
 return x.pos<y.pos;
}
 int main() 
 {
 int n;
 cin>>n;
 for(int i=1;i<=n;i++){
 cin>>a[i].name>>a[i].s1>>a[i].s2>>a[i].s3>>a[i].s4;
 a[i].pos=i;
 a[i].score=a[i].s1+a[i].s2+a[i].s3+a[i].s4;
 }
 sort(a+1,a+1+n,cmp);
 for(int i=1;i<=n;i++){
 cout<<a[i].name<<endl;
 } 
 return 0;
 }
0分


0
已采纳
熊潇然
熊潇然
初级启示者
初级启示者

是string类型!!!

0
钱帅文
钱帅文
中级天翼
中级天翼

char是一个字符

string是多个字符做成的 字符串

0
0
0
0
张云瀚
张云瀚
初级天翼
初级天翼

那个结构体里的name是string类型

0
我要回答