第4关:用指针方法求数组元素的平均值和 数组元素之积
时间: 2024-03-13 22:47:24 浏览: 55
好的,这道题需要用到指针。以下是代码实现:
```c
#include <stdio.h>
void average_product(int *arr, int len, float *avg, int *product) {
int sum = 0;
*product = 1; // 记得初始化为1,否则会出现乘积为0的情况
for (int i = 0; i < len; i++) {
sum += *(arr + i);
*product *= *(arr + i);
}
*avg = (float)sum / len;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
float avg;
int product;
average_product(arr, len, &avg, &product);
printf("平均值为:%.2f\n", avg);
printf("元素之积为:%d\n", product);
return 0;
}
```
在 `average_product` 函数中,我们通过指针参数来修改 `avg` 和 `product` 变量的值,计算数组的平均值和元素之积。在 `main` 函数中,我们定义了一个数组 `arr`,并且通过 `sizeof` 操作符计算出了数组的长度 `len`。然后,我们调用 `average_product` 函数,将数组的地址、长度和指向 `avg` 和 `product` 变量的指针传递给它。最后,我们输出计算出来的平均值和元素之积。