按照给定的函数原型编程实现:从键盘输入某班学生(最多30人)的学号、姓名及某门课的成绩(当输入的成绩为负数或人数超过30时数据输入结束)请在
Input函数实现,将学生成绩按照从高分到低分的顺序排序(分数相同时不作交换)请在Sort函数实现,最后打印排好序的学生成绩表请在Print函数
实现。
Input 函数函数原型:
int Input(long *pnum, char *pname[ ], int *pscore);
参数说明:指针 pnum 指向学号数组,指针 pscore 指向分数数组,指针数组 pname用于存放指向学生姓名的指针
函数返回值:返回班级的实际人数
Sort 函数函数原型:
void Sort(long *pnum, char *pname[ ], int *pscore, int n );
参数说明:指针 pnum 指向存放学号数组的第一个元素,指针 pscore 指向存放分数数组的第一个元素,指针数组 pname 用于存放指向学生姓名的指针,n 班级实际人数
函数返回值:无
Print 函数函数原型:
void Print(long *pnum, char *pname[ ], int *pscore, int n );
参数说明:指针 pnum 指向存放学号数组的第一个元素,指针 pscore 指向存放分数数组的第一个元素,指针数组 pname 用于存放指向学生姓名的指针,n 班级实际人数
函数返回值:无
【友情提示】
和指针数组对应的实参也应定义成一个指针数组
输入要求:按行输入学生的学号、姓名和分数,数据之间用空格分隔,输入的姓名无空格,见输入样例
输出要求:见输出样例
输入输出样例:
Input sample1:
19001 王洪 78
19002 张强 67
19003 李丽 88
19004 刘平 92
19005 徐民 -1
Output sample1:
Pos Num Name Grade
1 19004 刘平 92
2 19003 李丽 88
3 19001 王洪 78
4 19002 张强 67
Input sample2:
19001 王洪 78
19002 张强 67
19003 李丽 88
19004 刘平 92
19005 徐民 57
19006 田亮 96
19007 周云 89
19008 谢晖 95
19009 张国强 76
19010 王丽芬 75
19011 刘晓娅 87
19012 石立柱 83
19013 郑红 72
19014 郭强 79
19015 于涛 81
19016 马林 65
19017 宋惠 93
19018 方明 90
19019 严伟 45
19020 吴强 71
19021 颜辉 86
19022 刘玲 63
19023 吴凯 73
19024 赵杰 85
19025 赵云 82
19026 乔伟 74
19027 陈红 61
19028 胡量 68
19029 周刚 77
19030 秦齐 94
19031 李亮 76
Output sample2:
Pos Num Name Grade
1 19006 田亮 96
2 19008 谢晖 95
3 19030 秦齐 94
4 19017 宋惠 93
5 19004 刘平 92
6 19018 方明 90
7 19007 周云 89
8 19003 李丽 88
9 19011 刘晓娅 87
10 19021 颜辉 86
11 19024 赵杰 85
12 19012 石立柱 83
13 19025 赵云 82
14 19015 于涛 81
15 19014 郭强 79
16 19001 王洪 78
17 19029 周刚 77
18 19009 张国强 76
19 19010 王丽芬 75
20 19026 乔伟 74
21 19023 吴凯 73
22 19013 郑红 72
23 19020 吴强 71
24 19028 胡量 68
25 19002 张强 67
26 19016 马林 65
27 19022 刘玲 63
28 19027 陈红 61
29 19005 徐民 57
30 19019 严伟 45