通过指针求数组中所有元素的平均值
时间: 2024-05-08 18:21:07 浏览: 10
可以使用指针来遍历数组中的所有元素,并计算它们的平均值。以下是一个示例代码:
```c
#include <stdio.h>
double avg(double *arr, int size) {
double sum = 0.0;
double *ptr = arr; // 定义指针变量,指向数组的第一个元素
int i;
for (i = 0; i < size; i++) {
sum += *ptr; // 指针取值
ptr++; // 指针递增,指向下一个元素
}
return sum / size;
}
int main () {
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
int size = sizeof(balance) / sizeof(double);
double avg_value;
avg_value = avg(balance, size);
printf("平均值是: %f \n", avg_value);
return 0;
}
```
在上面的示例中,`avg` 函数接受一个指向数组的指针和数组大小作为参数,遍历数组并计算元素的总和。然后,它返回平均值。在 `main` 函数中,我们定义了一个数组 `balance`,计算了它的大小,并将它作为参数传递给 `avg` 函数。最后,我们打印出平均值。
相关问题
c++利用指针求数组最大值 最小值平均值以及高于平均值的数值的个数
好的,以下是用指针求解的C++代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
const int arrSize = 10; // 数组大小
int arr[arrSize] = {1, 5, 3, 2, 9, 7, 8, 4, 6, 0}; // 定义并初始化数组
int *p = arr; // 定义指向数组首元素的指针
int max = *p; // 假设首元素是最大值
int min = *p; // 假设首元素是最小值
int sum = 0; // 数组元素总和
// 遍历数组,求最大值、最小值、元素总和
for (int i = 0; i < arrSize; i++) {
if (*(p+i) > max) {
max = *(p+i);
}
if (*(p+i) < min) {
min = *(p+i);
}
sum += *(p+i);
}
double average = static_cast<double>(sum) / arrSize; // 平均值
int count = 0; // 高于平均值的元素个数
// 遍历数组,统计高于平均值的元素个数
for (int i = 0; i < arrSize; i++) {
if (*(p+i) > average) {
count++;
}
}
cout << "最大值为:" << max << endl;
cout << "最小值为:" << min << endl;
cout << "平均值为:" << average << endl;
cout << "高于平均值的元素个数为:" << count << endl;
return 0;
}
```
输出结果为:
```
最大值为:9
最小值为:0
平均值为:4.5
高于平均值的元素个数为:5
```
希望能解决你的问题,如果还有疑问,请随时追问。
c++利用指针求数组最大值 最小值平均值以及高于平均值的数值的个数算法分析
首先,我们可以使用指针遍历数组找到最大值和最小值,同时累加数组元素的总和。遍历完成后,通过数组元素个数求得平均值。
接下来,我们再次遍历数组,统计高于平均值的数值个数即可。
以下是C++代码实现:
```c++
#include<iostream>
using namespace std;
int main() {
int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
int *p = arr;
int max = *p, min = *p, sum = 0;
int count = 0;
for(int i = 0; i < 10; i++) {
if(*(p+i) > max) max = *(p+i);
if(*(p+i) < min) min = *(p+i);
sum += *(p+i);
}
double ave = sum / 10.0;
for(int i = 0; i < 10; i++) {
if(*(p+i) > ave) count++;
}
cout<<"Max value: "<<max<<endl;
cout<<"Min value: "<<min<<endl;
cout<<"Average value: "<<ave<<endl;
cout<<"Number of values above average: "<<count<<endl;
return 0;
}
```
上述代码中,我们通过指针p来遍历数组,同时利用max、min、sum和count变量分别记录最大值、最小值、总和和高于平均值的数值个数。最后输出结果即可。