学生的记录由学号和成绩组成,N名学生的数据已放入主函数中结构体数组s中。
(1)把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如:输入的分数是60,69.则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据,主函数中把60放在low中,把69放在heigh中,。
int fun(strec *a,strec *b,int l, int h) { int i,j=0; for(i=0;i<N;i++) if(a[i].s>=l&&a[i].s<=h) b[j++]=a[i]; return j; } |
(2)功能:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
Double fun(STREC *a,ATREC *b,int *n) { int i,j=0; double av=0.0; for(i=0;i<N;i++) av=av+a[i].s; av=av/N; for(i=0;i<N;i++) if(a[i].s<av) b[j++]=a[i]; *n=j; return av; } |
(3)功能:把高于平均分的学生数据放入b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
double fun(strec *a,strec *b,int *n) { int i; double av=0.0; *n=0; for(i=0;i<N;i++) if(av<=a[i].s) { b[*n]=a[i]; *n=*n+1; } return av; }
|
(4)某学生的记录友学号,8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,功能:求出该学生的平均分,并放入记录的ave成员中,
Void fun(strec *a) { int i; a->ave=0; for(i=0;i<N;i++) a->ave=a->ave+a->s[i]; a->ave=a->ave/N; } |
(5)N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h执向链表的头结点。功能:求出平均分,并由函数值返回。
Double fun(STREC *h) { double av=0.0; STREC *p=h->next; While(p!=NUll) { av=av+p->s; p=p->next; } return av/N; } |
(6)计算n门课程的平均分,结果作为函数值返回
Float fun(float *a,int n) { float av=0.0; int i; for(i=0;i<n;i++) av=av+a[i]; Return(av/n); } |
计算平均分方法:
for(i=0;i<n;i++)
av=av+a[i];
return (av/n);