去掉一个最高分,去掉一个最低分,求平均值,用指针函数C语言
时间: 2023-07-16 16:14:54 浏览: 146
以下是去掉一个最高分和一个最低分求平均值的C语言代码,使用指针函数实现:
```c
#include <stdio.h>
float average(float *score, int n); // 声明指针函数
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
float score[n];
printf("请输入%d个学生成绩:\n", n);
for (int i = 0; i < n; i++) {
scanf("%f", &score[i]);
}
printf("平均成绩为:%.2f\n", average(score, n));
return 0;
}
float average(float *score, int n) {
float sum = 0, max = *score, min = *score;
for (int i = 0; i < n; i++) {
if (*(score + i) > max) max = *(score + i);
if (*(score + i) < min) min = *(score + i);
sum += *(score + i);
}
return (sum - max - min) / (n - 2);
}
```
解释:
1. 在 `main` 函数中,通过 `scanf` 输入学生人数和每个学生的成绩,存储在 `score` 数组中。
2. 调用指针函数 `average`,传入 `score` 数组和 `n`,返回平均成绩。
3. 在 `average` 函数中,使用指针访问 `score` 数组中的元素,求出最高分 `max`、最低分 `min` 和总成绩 `sum`。
4. 最后,返回去掉最高分和最低分后的平均成绩。
阅读全文