编写float fun(float array[],int n),统计出若干个学生的平均成绩,最高分以及得最高分的人数
时间: 2023-06-14 18:07:44 浏览: 175
以下是一个可能的实现:
```c
#include <stdio.h>
typedef struct {
float average; // 平均分
float max; // 最高分
int count; // 最高分的人数
} Result;
Result fun(float array[], int n) {
Result result = { 0, 0, 0 };
for (int i = 0; i < n; i++) {
result.average += array[i];
if (array[i] > result.max) {
result.max = array[i];
result.count = 1;
} else if (array[i] == result.max) {
result.count++;
}
}
result.average /= n;
return result;
}
int main() {
float scores[] = { 90.5, 85.0, 92.5, 88.0, 95.0 };
Result result = fun(scores, 5);
printf("平均分:%.2f\n", result.average);
printf("最高分:%.2f\n", result.max);
printf("得最高分的人数:%d\n", result.count);
return 0;
}
```
在 `fun` 函数中,我们首先定义了一个 `Result` 结构体,用于保存计算结果。然后遍历输入的数组,累加每个学生的成绩,同时判断是否出现了新的最高分。如果出现了新的最高分,我们将 `max` 字段更新为该最高分,同时将 `count` 字段重置为 1。如果当前成绩等于最高分,我们将 `count` 字段加 1。最后计算平均分并返回 `Result` 结构体。
在 `main` 函数中,我们定义了一个示例成绩数组,并调用 `fun` 函数计算结果。最后输出计算结果。
阅读全文