c语言编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,n存放得分个数(n>2)。
时间: 2024-03-09 18:45:34 浏览: 119
好的,这是一个比较简单的函数实现,下面是函数fun的C语言代码实现:
```c
float fun(float* a, int n)
{
float sum = 0.0f, max = a[0], min = a[0];
int i;
// 找到最高分和最低分
for (i = 0; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
if (a[i] < min) {
min = a[i];
}
}
// 计算总分
for (i = 0; i < n; i++) {
if (a[i] != max && a[i] != min) {
sum += a[i];
}
}
// 计算平均分
return sum / (n - 2);
}
```
在上述代码中,我们首先通过遍历数组找到最高分和最低分,然后再遍历一次数组,将除了最高分和最低分以外的得分求和,最后求出平均分并返回。
相关问题
用c语言编写float fun(float array[],int n),统计出若干个学生的平均成绩,最高分以及得最高分的人数
好的,我记下了你的问题。对于这个问题,你可以参考以下 C 语言代码:
```c
#include <stdio.h>
float fun(float array[], int n, float* max_score, int* max_count) {
float sum = 0.0;
*max_score = array[0];
*max_count = 1;
for (int i = 0; i < n; i++) {
sum += array[i];
if (array[i] > *max_score) {
*max_score = array[i];
*max_count = 1;
} else if (array[i] == *max_score) {
(*max_count)++;
}
}
return sum / n;
}
int main() {
float scores[] = { 85.0, 90.0, 70.0, 92.0, 87.0, 90.0 };
int n = sizeof(scores) / sizeof(scores[0]);
float avg_score, max_score;
int max_count;
avg_score = fun(scores, n, &max_score, &max_count);
printf("Average score: %.2f\n", avg_score);
printf("Max score: %.2f\n", max_score);
printf("Number of students with max score: %d\n", max_count);
return 0;
}
```
这个函数接受一个 float 数组和它的大小,然后计算平均成绩,最高分以及得最高分的人数。它使用了指针来返回最高分和最高分的人数,因为一个函数只能返回一个值。
我希望这可以帮到你!
阅读全文