由于校赛,OJ将于本周五(5.17)到周日停止服务

Problem 1752. -- 学生数据排序

1752: 学生数据排序

Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
Submitted: 585  Accepted: 216
[Submit][Status][Web Board]

Description

某班 有n个学生(不超过100),每个学生的信息包括学号(long no),姓名(char name[9])和三门课的成绩(int score[4],其中score[0]~score[3]分别用来存放总分,语文,数学和英语的成绩)。

编写程序,录入n个学生的信息,然后按照总分降序排序(如果总分相同的按照学号小的在前),最后输出排序后的学生信息。

注意:main函数已经给定(如下所示)。

           请将程序补充完整。

           提交时只需要提交自己补充的代码部分,不需要提交给定的main函数的代码部分。

#include<stdio.h>
int main()
{
    int n;
    struct student stu[100];
    while(scanf("%d",&n)!=EOF)
    {
        input(stu,n);   //读入n个学生的数据
        sort(stu,n);   //按照总分降序排序,如果总分相同的学号小的在前面
        print(stu,n);   //输出n个学生的信息
    }
    return 0;
}

Input

 包含多组测试数据,每组测试数据第一行包含1个整数n(大于1小于等与100),表示学生人数。接下来的n行为n个学生的详细信息,包括学号,姓名,语文,数学和英语的分数,个数据之间用空格隔开。

Output

 每组测试数据输出占n行,每行输出一个学生的信息。每一行的输出数据依次为:排名,学号,姓名,总分,英文成绩,数学成绩和英语成绩。各部分数据之间用空格隔开。(具体详见样例输出)

Sample Input

5
1001 aaa 54 85 65
1002 bbb 54 65 85
1003 ccc 88 99 99
1004 ddd 35 50 50
1005 eee 99 99 99

Sample Output

1 1005 eee 297 99 99 99
2 1003 ccc 286 88 99 99
3 1001 aaa 204 54 85 65
4 1002 bbb 204 54 65 85
5 1004 ddd 135 35 50 50

[Submit][Status][Web Board]