请用C语言编写如下程序:用指向指针的指针或指针数组,计算二维数组的平均数(选做)。
时间: 2023-06-16 20:06:21 浏览: 98
以下是用指向指针的指针实现的代码:
```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;
}
```
阅读全文