习题9-6 按等级统计学生成绩 (20 分)
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。
函数接口定义:
int set_grade( struct student *p, int n );
其中p
是指向学生信息的结构体数组的指针,该结构体的定义为:
struct student{
int num;
char name[20];
int score;
char grade;
};
n
是数组元素个数。学号num
、姓名name
和成绩score
均是已经存储好的。set_grade
函数需要根据学生的成绩score
设置其等级grade
。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade
还需要返回不及格的人数。
代码:
int set_grade( struct student *p, int n )
{
int fail = 0;//不及格数
for(int i=0;i<n;i++)
{
if(p->score >= 85) p->grade = 'A';
else if(p->score >=70 && p->score <= 84) p->grade = 'B';
else if(p->score >=60 && p->score <= 69) p->grade = 'C';
else if(p->score <60){
p->grade = 'D';
fail++;
}
p++;
}
return fail;
}