输入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; }