天勤OJ 题目1371: 成绩排序
题目描述从键盘输入4 个学生的数据(包括姓名、年龄和成绩),按成绩从高到底排序,并输出其中成绩次高者的所有数据。
输入4行,每一行表示一个学生的数据,分别表示 姓名、年龄和成绩。
输出4行,表示排序后的结果,格式参见样例。
aa 10 90
bb 20 100
cc 18 98
dd 19 93
bb 20 100
cc 18 98
dd 19 93
aa 10 90
*** 提示已隐藏,点击上方 [+] 可显示 ***
北京理工大学计算机专业2000年研究生复试上机试题
/********************************** 日期:2013-2-14* 作者:SJF0115* 题号: 天勤OJ 题目1371: 成绩排序* 来源:http://acmclub.com/problem.php?id=1371* 结果:AC* 来源:北京理工大学计算机专业2000年研究生复试上机试题* 总结:**********************************/#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct Student{char name[50];//姓名int age;//年龄int grade;//成绩}Student;Student student[5];//排序函数int cmp(const void *a,const void *b){struct Student *c = (Student *)a;struct Student *d = (Student *)b;return d->grade - c->grade;}int main(){int i;//输入 for(i = 0;i < 4;i++){scanf("%s %d %d",student[i].name,&student[i].age,&student[i].grade);}//排序qsort(student,4,sizeof(student[0]),cmp);//输出for(i = 0;i < 4;i++){printf("%s %d %d\n",student[i].name,student[i].age,student[i].grade);} return 0;}