请用C语言编写如下程序:利用指向指针的指针或指针数组,计算二维数组的平均数。
时间: 2023-06-18 09:04:19 浏览: 210
以下是用指针数组实现的二维数组平均数计算程序:
```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` 来限制小数位数。
阅读全文