c语言指针法求数组平均数
时间: 2023-06-10 22:06:51 浏览: 553
可以使用指针来遍历数组并计算平均数,具体实现如下:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
// 使用指针遍历数组并计算总和
int *p = arr;
for (int i = 0; i < n; i++) {
sum += *p;
p++;
}
// 计算平均数并输出
double avg = (double) sum / n;
printf("平均数为 %.2f", avg);
return 0;
}
```
输出结果为:
```
平均数为 3.00
```
首先定义了一个整型数组 `arr`,然后计算出数组的长度 `n`。接着定义一个指针 `p`,将其指向数组的首元素,使用指针遍历数组并计算总和。最后计算平均数并输出即可。
相关问题
请用C语言编写如下程序:利用指向指针的指针或指针数组,计算二维数组的平均数。
以下是用指针数组实现的二维数组平均数计算程序:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int a[ROWS][COLS] = { {2, 4, 6, 8},
{3, 5, 7, 9},
{1, 8, 2, 6} };
int *p[ROWS];
for(int i=0; i<ROWS; i++) {
p[i] = a[i];
}
int sum = 0;
for(int i=0; i<ROWS; i++) {
for(int j=0; j<COLS; j++) {
sum += *(p[i]+j);
}
}
float avg = (float)sum/(ROWS*COLS);
printf("二维数组的平均数为:%.2f\n", avg);
return 0;
}
```
解释:
- 首先定义一个二维数组 `a`,包含 3 行 4 列;
- 然后定义一个指针数组 `p`,长度为 3,每个元素都是指向 `int` 类型的指针;
- 将指针数组的每个元素都指向二维数组的每一行;
- 使用两重循环遍历二维数组,累加每个元素的值;
- 最后计算平均数,输出结果。
注意:
- 在计算平均数的时候,需要将累加和转换成 `float` 类型,以便得到正确的结果;
- `%f` 格式化字符串默认输出 6 位小数,可以通过 `.2` 来限制小数位数。
请用C语言编写如下程序:用指向指针的指针或指针数组,计算二维数组的平均数(选做)。
以下是用指向指针的指针实现的代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main()
{
int arr[ROWS][COLS] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int *ptr[ROWS]; // 指向指针的指针
for (int i = 0; i < ROWS; i++) {
ptr[i] = arr[i]; // 每个指针指向二维数组的一行
}
int sum = 0;
int count = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
sum += *(ptr[i] + j); // 计算总和
count++; // 元素个数加1
}
}
float avg = (float)sum / count; // 计算平均数
printf("平均数:%f\n", avg);
return 0;
}
```
以下是用指针数组实现的代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main()
{
int arr[ROWS][COLS] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int *ptr[ROWS]; // 指针数组
for (int i = 0; i < ROWS; i++) {
ptr[i] = arr[i]; // 每个指针指向二维数组的一行
}
int sum = 0;
int count = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
sum += *(ptr[i] + j); // 计算总和
count++; // 元素个数加1
}
}
float avg = (float)sum / count; // 计算平均数
printf("平均数:%f\n", avg);
return 0;
}
```
阅读全文