c语言一维实型数组 编写函数计算一维实型数组前n个元素的最大值、最小值和平均值。数组、n、最大值、最小值和平均值均作为函数形参,函数无返回值:在主函数中输入数据,调用函数得到结果。(要求用指针方法实现)
时间: 2024-03-09 07:47:29 浏览: 100
好的,下面是代码实现:
```c
#include <stdio.h>
void calculate(float arr[], int n, float *max, float *min, float *avg){
*max = *min = *avg = arr[0];
for(int i=1; i<n; i++){
if(arr[i] > *max){
*max = arr[i];
}
if(arr[i] < *min){
*min = arr[i];
}
*avg += arr[i];
}
*avg /= n;
}
int main(){
float arr[100], max, min, avg;
int n;
printf("请输入数组长度n:");
scanf("%d", &n);
printf("请输入%d个实数:", n);
for(int i=0; i<n; i++){
scanf("%f", &arr[i]);
}
calculate(arr, n, &max, &min, &avg);
printf("最大值为:%f\n", max);
printf("最小值为:%f\n", min);
printf("平均值为:%f\n", avg);
return 0;
}
```
在这个程序中,我们定义了一个名为 `calculate` 的函数,它接受一个一维实型数组,数组长度,以及三个指向 float 类型变量的指针。这个函数通过指针修改了最大值、最小值和平均值的值,而没有使用返回值。在计算最大值和最小值时,我们使用了 if 语句来进行判断;在计算平均值时,我们使用了累加器的方式,最后再除以 n 得到平均值。
在主函数中,我们首先读取了数组长度和数组中的数据,然后调用 `calculate` 函数来计算最大值、最小值和平均值。最后,我们使用 printf 函数打印出这三个值。
需要注意的是,在调用 `calculate` 函数时,我们传递了三个指针作为参数,这些指针分别指向了定义在主函数中的三个变量。因为这些变量的地址会传递给 `calculate` 函数,所以在函数内部就可以通过指针来修改这些变量的值,而这些修改也会反映到主函数中的变量上。
阅读全文