成绩排序

Dear 丶 2022-07-14 07:58 319阅读 0赞

A. 成绩排序

Time Limit: 1000ms

Memory Limit: 65536KB

64-bit integer IO format: %lld Java class name: Main

Submit Status

北京师范大学信息学院09年研究生入学考试的初试成绩出来了,院里的教务老师希望将成绩从高到低有序地排好,对于成绩相同的同学,按报名号从小到大排序。请你编程帮他解决。

Input

第1排输入一个N,表示有N个学生的信息。(1<=N<=1000) 从第2排到第1+N排,每一排表示一个学生的信息,学生的信息包括:姓名,报名号和初试成绩。每项之间用一个空格隔开。 姓名由字母组成(不含空格),最长为12个字母。报名号由3-8位数字组成,可能首位含0。每组测试数据中,所有学生的报名号的长度是一致的。初试成绩为2位的小数,范围在0 - 600 之间。

Output

按学生成绩的高低(从高到低),成绩相同的,按报名号的大小(从小到大)依次输出学生的姓名、报名号和成绩。每个学生的信息占一排,信息包括:姓名,报名号和初试成绩。每项之间用空格隔开,每行的末尾不能有多余的空格。成绩保留两位小数。

注意:本题输入输出都在控制台中,使用标准输入输出函数即可,不需要读写文件。

Sample Input

  1. 3
  2. XiaoMing 0911210031 320.56
  3. XiaoZhang 0911210001 330.23
  4. XiaoLi 0911210023 312.22

Sample Output

  1. XiaoZhang 0911210001 330.23
  2. XiaoMing 0911210031 320.56
  3. XiaoLi 0911210023 312.22

Submit Status

  1. #include<iostream>
  2. #include<algorithm>
  3. #include <iomanip>
  4. using namespace std;
  5. struct Student
  6. {
  7. char name[12];
  8. string id;
  9. double score;
  10. };
  11. struct StudentRule1{
  12. bool operator()(const Student &s1,const Student &s2){
  13. if(s1.score!=s2.score)
  14. return s1.score>s2.score;
  15. else
  16. return s1.id<s2.id;
  17. }
  18. };
  19. void PrintStudents(Student s[],int size){//输出学生信息
  20. for(int i=0;i<size;i++){
  21. cout<<s[i].name<<" "<<s[i].id<<" "<< fixed<<setprecision(2)<<s[i].score<<endl;
  22. }
  23. }
  24. int main()
  25. {
  26. struct Student student[1001];
  27. int n;
  28. cin>>n;
  29. for(int i=0;i<n;i++)
  30. {
  31. cin>>student[i].name>>student[i].id>>student[i].score;
  32. }
  33. sort(student,student+n,StudentRule1());
  34. PrintStudents(student,n);
  35. return 0;
  36. }

发表评论

表情:
评论列表 (有 0 条评论,319人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HJ68 成绩排序

    描述 给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70

    相关 成绩排序 - 华科

    题目描述: 有N个学生的数据,将学生数据按成绩从低到高排序,如果成绩相同则按姓名字符的字典序排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出N个学生排序后的信

    相关 成绩排序(解题报告)

    题目描述 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。

    相关 成绩排序

    题目: 有 N 个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名 字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出 N

    相关 算法三:成绩排序

    免费版:[算法三:成绩排序][Link 1] 问题描述 有 n 名学生,它们的学号分别是 1,2,…,n。这些学生都选修了邓老师的算法训练营、数据结构训练营这两门课

    相关 190506 | 成绩排序

    想好好准备夏令营机试,以及巩固自己忘得差不多的基础算法,今天起开始每天三道刷题打卡,愿自己能从手生到敲代码飞到溜的转变。 -------------------- 题目描述

    相关 190515 | 成绩排序

    题目描述 用一维数组存储学号和成绩,然后,按成绩排序输出。 输入描述: 输入第一行包括一个整数N(1<=N<=100),代表学生的个数。 接下来的N行每行包括两个整