一维实型数组 编写函数计算一维实型数组前个元素的最大值、最小 值和平均值。数组、n、最大值、最小值和平均值均作 为函数形参,函数无返回值:在主函数中输入数据,调 用函数得到结果。 (要求用指针方法实现
时间: 2025-02-04 15:25:22 浏览: 55
一维实型数组是指在内存中连续存储的一系列同类型的浮点数。在C语言中,我们可以创建这样的数组并使用指针来操作其元素。为了计算给定数组(例如double类型的数组)的前n个元素的最大值、最小值和平均值,可以编写如下的函数:
```c
#include <stdio.h>
// 定义函数,接受指向数组首元素的指针、数组长度和三个指针来保存结果
void compute_stats(double* arr, int n, double* max_val, double* min_val, double* avg_val) {
if (arr == NULL || n <= 0) {
printf("Invalid input.\n");
return;
}
// 初始化最大值和最小值为第一个元素
*max_val = *min_val = arr[0];
double sum = 0;
// 遍历数组的前n个元素
for (int i = 1; i < n; i++) {
// 更新最大值和最小值
if (arr[i] > *max_val)
*max_val = arr[i];
else if (arr[i] < *min_val)
*min_val = arr[i];
// 计算总和
sum += arr[i];
}
// 计算平均值并更新指针指向的位置
*avg_val = sum / n;
}
int main() {
const int SIZE = 5;
double arr[SIZE]; // 假设这里已经初始化了数组
double max, min, average;
// 输入数据
printf("Enter %d elements:\n", SIZE);
for (int i = 0; i < SIZE; i++) {
scanf("%lf", &arr[i]);
}
// 调用函数并传递数组指针和长度
compute_stats(arr, SIZE, &max, &min, &average);
// 输出结果
printf("Max value: %.2lf\n", max);
printf("Min value: %.2lf\n", min);
printf("Average value: %.2lf\n", average);
return 0;
}
```
这个程序首先检查输入是否有效,然后遍历数组,计算最大值、最小值和累加求和。最后,在`main()`函数中获取用户输入的数据,并调用`compute_stats()`函数来计算统计结果。
阅读全文
相关推荐
















