编写函数(void statistics(const int *pdata,int n,int *result)),统计一组数据的平均数、最大值和最小值
时间: 2024-12-23 19:26:23 浏览: 3
深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
5星 · 资源好评率100%
编写一个函数 `statistics` 来计算一组整数数组的平均数、最大值和最小值,可以按照以下步骤:
```c
#include <stdio.h>
#include <stdlib.h>
// 函数声明
void calculateStatistics(const int* pdata, int n, double* average, int* max_value, int* min_value);
// 函数实现
void calculateStatistics(const int* pdata, int n, double* average, int* max_value, int* min_value) {
if (n <= 0) {
printf("Error: 数据长度无效.\n");
return;
}
// 初始化平均值为第一个元素
*average = pdata[0];
// 初始化最大值和最小值为第一个元素
*max_value = *min_value = pdata[0];
// 遍历数组计算平均值、最大值和最小值
for (int i = 1; i < n; ++i) {
*average += pdata[i]; // 更新平均值
if (pdata[i] > *max_value) {
*max_value = pdata[i];
}
if (pdata[i] < *min_value) {
*min_value = pdata[i];
}
}
// 计算并设置平均值(除以元素总数)
*average /= n;
// 返回结果
}
// 主程序测试
int main() {
const int data[] = {5, 8, 2, 9, 4};
int array_size = sizeof(data) / sizeof(data[0]);
double avg;
int max_val, min_val;
calculateStatistics(data, array_size, &avg, &max_val, &min_val);
printf("平均值: %.2lf\n", avg);
printf("最大值: %d\n", max_val);
printf("最小值: %d\n", min_val);
return 0;
}
```
这个 `statistics` 函数接受一个整型指针 `pdata`,表示输入的数据数组,以及数组的长度 `n` 和两个指向存储结果的指针 `result`。它会返回三个结果:平均值作为 `double` 类型的指针,最大值和最小值作为 `int` 类型的指针。
阅读全文