给个题目大家练练。c高手都来看看,求程序简洁明了~
设计一个程序,对某个班(最多40人)的学生成绩进行统计。要求实现如下功能。
1) 输入每个学生的学号及五门课的成绩。
2) 计算每人的平均分及增总分
3) 按总分从高到低排名次,并输出每个学生的学习情况。
4) 指定某门课程(键入课程号),输出成绩在85分以上(含85分),且总分在前10名的学生学习情况。
5) 输出含不及格(小于60分)成绩的学生的学习情况。
具体要求如下:
(1) 每个功能为一个独立的函数。
(2) 输入之前要有提示。
(3) 程序尽量简明、规范。
方法提示:
要在主函数中定义以下几个数组:
num[40] 整型数组,依次存放学生学号。
a[40][7] 实型数组,每个存放一个学生的五门课程(课程为1,2,3,4,5)的成绩、平均分、总分。
Order[40] 整型数组,按名次存放学生情况的输入序号,如order[i]存放第i+1名学生情况的输入序号。
主函数可依次调用下面五个功能函数。
(1) input(num,a)
这个函数逐个输入学生的学号及五门课程的成绩,输入格式为:
学号,课程成绩1——5课程成绩
其中学号依次赋给num数组,五门课程成绩依次赋给a数组的前5列。输入过程直到学号为负或人数超过40人为止。
(2) count(a)
此函数计算每个学生的平均分及总分,并依次存放在数组a的最后两列。
(3) sort(a,order)
这个函数按总分从高到低排名次,并按名次输出每个学生的学习情况。在排名时,不交换数组a中的元素,而用数组order来记录名次,即 order[i]中存放第i+1名学生情况在数组num与a中的位置(行号)。为了按名次输出各学生的情况,需要依次从数组order中取出学生情况在数组num与a中的行号,然后输出数组num与a的该行元素。
(4) serch1(num,a,order)
这个函数对指定的某门课程,输出85分以上且总分在前10名的学生学习情况。
(5) serch2(num,a)
这个函数输出不及格成绩的学生学习情况。
[ 本帖最后由 w7815115 于 2013-6-2 22:34 编辑 ]