定义一个函数 fun,能求出一维数组的平均值、最大值和最小值,在main 函 数调用此fun 函数、然后在main 函数中输出平均值、最大值、最小值。(此题要 求 fun 函数传递平均值、最大值、最小值给 main 函数,可以使用全局变量方法 和指针方法传递多个返回值)C语言
时间: 2025-02-13 08:23:47 浏览: 51
在C语言中,由于标准库函数只允许单值返回,我们无法直接通过一个函数返回多个值。不过,我们可以使用结构体来封装这些值,并作为函数的返回类型。同时,我们可以利用全局变量或者联合体(union)来在主函数和辅助函数间共享数据。这里是一个示例,首先定义一个结构体来存储平均值、最大值和最小值:
```c
#include <stdio.h>
// 结构体来存储平均值、最大值和最小值
typedef struct {
double avg;
double max_val;
double min_val;
} Result;
// 助手函数,计算并更新结果
void calculate_stats(double arr[], int n, Result* result) {
double sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
if (i == 0 || arr[i] > result->max_val) {
result->max_val = arr[i];
}
if (i == 0 || arr[i] < result->min_val) {
result->min_val = arr[i];
}
}
result->avg = sum / n;
}
// 主函数
int main() {
// 假设输入数组
double array[] = {5, 10, 15, 20, 25};
int n = sizeof(array) / sizeof(array[0]);
// 初始化结构体结果
Result stats;
calculate_stats(array, n, &stats);
// 输出结果
printf("Average: %.2f\n", stats.avg);
printf("Max value: %.2f\n", stats.max_val);
printf("Min value: %.2f\n", stats.min_val);
return 0;
}
```
在这个例子中,`calculate_stats`函数接收一个数组、其长度以及指向结果结构体的指针。这样,我们就能在主函数中得到平均值、最大值和最小值了。
阅读全文
相关推荐










