利用指针数组求平均值
时间: 2024-06-16 20:00:56 浏览: 110
可以利用指针数组来求一组数的平均值,步骤如下:
1. 定义一个指针数组,数组中每个元素指向一个需要计算平均值的数;
2. 定义一个变量 sum 用于累加所有的数,初值为 0;
3. 利用循环将每个指针所指向的数加到 sum 中;
4. 计算平均值 avg,avg = sum / 数组长度;
5. 输出平均值。
以下是示例代码:
```
#include <stdio.h>
int main() {
int nums[] = {2, 4, 6, 8, 10};
int *p_nums;
for (int i = 0; i < 5; i++) {
p_nums[i] = &nums[i];
}
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += *p_nums[i];
}
double avg = (double)sum / 5;
printf("平均值为:%lf", avg);
return 0;
}
```
相关问题
、利用指针数组求5×3数组每行元素之
间的平均值,结果存储在另一个数组中。
下面是一个示例代码:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 3
int main() {
int arr[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12},
{13, 14, 15}
};
double avgs[ROWS]; // 存储每行的平均值
// 利用指针数组遍历每行
for (int i = 0; i < ROWS; i++) {
int *row = arr[i];
double sum = 0;
for (int j = 0; j < COLS; j++) {
sum += *(row + j);
}
avgs[i] = sum / COLS;
}
// 输出每行的平均值
for (int i = 0; i < ROWS; i++) {
printf("Average of row %d: %f\n", i, avgs[i]);
}
return 0;
}
```
这个程序首先定义了一个 5×3 的二维数组 `arr`,然后定义了一个大小为 5 的一维数组 `avgs`,用来存储每行的平均值。
接下来,利用指针数组遍历每行,计算每行的元素和,并求出平均值。最后,输出每行的平均值。
注意,我们可以用指针数组来遍历二维数组的行,也可以用指针来遍历二维数组的所有元素。对于这道题目,使用指针数组更为直观。
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
```
希望能解决你的问题,如果还有疑问,请随时追问。
阅读全文