學生的記錄由學號和成績組成,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);