/* * 去掉最高分,去掉最低分,求平均值 */ void Max(const int *arr, int len, int *max) {...} void Min(const int *arr, int len, int *min) {...} void Sum(const int *arr, int len, int *sum) {...} void Avg(int sum, int max, int min, int len, float *avg) {...} void test01() { int arr[] = {1, 2, 5, 4, 3, 6, 7}; int len = sizeof (arr) / sizeof (int); //在此处调用上面的函数,然后在此打印平均值
时间: 2023-11-27 19:53:37 浏览: 84
以下是完整的代码:
```
#include <stdio.h>
void Max(const int *arr, int len, int *max) {
*max = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
}
}
void Min(const int *arr, int len, int *min) {
*min = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
}
}
void Sum(const int *arr, int len, int *sum) {
*sum = 0;
for (int i = 0; i < len; i++) {
*sum += arr[i];
}
}
void Avg(int sum, int max, int min, int len, float *avg) {
*avg = (float)(sum - max - min) / (float)(len - 2);
}
void test01() {
int arr[] = {1, 2, 5, 4, 3, 6, 7};
int len = sizeof (arr) / sizeof (int);
int max, min, sum;
float avg;
Max(arr, len, &max);
Min(arr, len, &min);
Sum(arr, len, &sum);
Avg(sum, max, min, len, &avg);
printf("平均值为:%f\n", avg);
}
int main() {
test01();
return 0;
}
```
在 `test01()` 函数中,我们首先定义了一个整数数组 `arr` 和它的长度 `len`。然后,我们定义了整数变量 `max`、`min` 和 `sum`,以及浮点数变量 `avg`。接着,我们分别调用了 `Max()`、`Min()` 和 `Sum()` 函数,计算出数组中的最大值、最小值和总和。最后,我们调用了 `Avg()` 函数,求出去掉最高分和最低分后的平均值,并将结果存入 `avg` 变量中。最终,我们使用 `printf()` 函数将平均值输出到控制台。注意,在调用 `Max()`、`Min()` 和 `Sum()` 函数时,我们需要传入指向 `max`、`min` 和 `sum` 变量的指针,以便在函数内部修改它们的值。而在调用 `Avg()` 函数时,我们需要传入 `sum`、`max`、`min`、`len` 和 `avg` 变量的值的副本,因为这些值在函数内部不会被修改。最后,我们通过指向 `avg` 变量的指针,将函数返回的平均值存入 `avg` 变量中。
阅读全文