用c语言写出用指针求数组元素的平均值和数组元素之积的代码
时间: 2024-01-21 10:18:32 浏览: 98
下面是用指针求数组元素的平均值和数组元素之积的C语言代码:
```c
#include <stdio.h>
void avg_mul(int arr[], int size, float* avg, int* mul) {
int sum = 0;
*mul = 1; // 初始化乘积为1
for (int i = 0; i < size; i++) {
sum += arr[i];
*mul *= arr[i];
}
*avg = (float)sum / size; // 计算平均值
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
float avg;
int mul;
avg_mul(arr, size, &avg, &mul); // 传入指针参数
printf("平均值为 %.2f,元素之积为 %d\n", avg, mul);
return 0;
}
```
输出结果为:
```
平均值为 3.00,元素之积为 120
```
在 `avg_mul` 函数中,使用指针参数 `avg` 和 `mul` 分别指向 `main` 函数中定义的 `avg` 和 `mul` 变量的地址。在循环中,累加数组元素之和,并计算数组元素之积。最后,通过指针参数将平均值和元素之积返回给 `main` 函数。
相关问题
用c语言编写程序,用指针 实现,将n个整数存入一维数组中 求数组元素的平均值和数组元素之 积
好的,以下是使用指针实现将n个整数存入一维数组,并求出数组元素的平均值和数组元素之积的C语言代码:
```c
#include <stdio.h>
int main() {
int n;
printf("Enter the number of integers: ");
scanf("%d", &n);
int arr[n];
int *p = arr; // 指向数组的指针
printf("Enter %d integers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", p + i); // 通过指针读入数组元素
}
double sum = 0, product = 1;
for (int i = 0; i < n; i++) {
sum += *(p + i); // 求和
product *= *(p + i); // 求积
}
double avg = sum / n; // 平均值
printf("Average: %lf\n", avg);
printf("Product: %lf\n", product);
return 0;
}
```
这段代码同样是先从标准输入读入整数n,然后声明一个大小为n的整型数组arr,并通过指针p指向数组。接下来使用循环通过指针读入n个整数。接着使用另一个循环计算数组元素的平均值和数组元素之积。最后输出平均值和积。
c语言问题:用指针方法求数组元素的平均值和数组元素之积 测试输入:9 1 42 3 9 7 6 33 2 8 预期输出: 平均值:12.000000 积:226328256.000000 #include <stdio.h> #define N 10 int main() { /********** Begin / /* End **********/ }
可以使用指针来实现对数组元素的操作,具体代码如下:
```
#include <stdio.h>
#define N 10
int main() {
int nums[N];
int *p = nums; // 指向数组的指针
double sum = 0.0;
double product = 1.0;
// 输入数组元素
for (int i = 0; i < N; i++) {
scanf("%d", &nums[i]);
}
// 计算平均值和积
for (int i = 0; i < N; i++) {
sum += *(p+i); // 或者 sum += p[i];
product *= *(p+i); // 或者 product *= p[i];
}
printf("平均值:%.6f\n", sum / N);
printf("积:%.6f\n", product);
return 0;
}
```
首先定义一个指向数组的指针p,并将其初始化为指向数组首元素的地址。接着输入数组元素,再使用指针遍历数组元素并计算平均值和积。最后输出结果即可。
阅读全文