在以 GRADE 为首地址的数组中存放着某班某门课 20 个学生的成绩,编写 三个子程序分别实现:(1)统计该门课的总分(SUM);(2)求该门课的平均分 (AVESCORE);(3)统计不及格(成绩<60)(NUM1)和优秀学生人数(成绩>=90)(NUM2)
时间: 2024-02-04 11:04:29 浏览: 66
下面是三个子程序的实现,以C语言为例:
```c
#include <stdio.h>
// 统计该门课的总分(SUM)
int sum(int arr[], int n) {
int i, sum = 0;
for (i = 0; i < n; i++) {
sum += arr[i];
}
return sum;
}
// 求该门课的平均分 (AVESCORE)
float average(int arr[], int n) {
int i, sum = 0;
for (i = 0; i < n; i++) {
sum += arr[i];
}
return (float)sum / n;
}
// 统计不及格(成绩<60)(NUM1)和优秀学生人数(成绩>=90)(NUM2)
void count(int arr[], int n, int *num1, int *num2) {
int i;
*num1 = 0;
*num2 = 0;
for (i = 0; i < n; i++) {
if (arr[i] < 60) {
(*num1)++;
} else if (arr[i] >= 90) {
(*num2)++;
}
}
}
// 测试函数
int main() {
int scores[20] = {85, 90, 72, 60, 50, 78, 95, 88, 65, 70, 80, 92, 67, 73, 81, 79, 87, 91, 55, 83};
int n = sizeof(scores) / sizeof(scores[0]);
int s = sum(scores, n);
float a = average(scores, n);
int num1, num2;
count(scores, n, &num1, &num2);
printf("总分:%d\n", s);
printf("平均分:%.2f\n", a);
printf("不及格人数:%d\n", num1);
printf("优秀学生人数:%d\n", num2);
return 0;
}
```
输出结果为:
```
总分:1521
平均分:76.05
不及格人数:6
优秀学生人数:4
```
阅读全文