用指针方法处理下列程序:定义一个3行2列的double型二维数组,再定义一个指向第0行的指针变量去指向二维数组,利用这个指针变量输入这3行2列的二维数组,再把这个指向第0行的指针变量作为函数参数,去调用void average(double (*q)[2])函数,在这个函数中只求出第1行的平均值,并输出
使用一个指向两个double类型元素数组的指针来指向这个3行2列的double数组,然后可以像使用二维数组名那样来访问这个3行2列的二维数组了,无论在main函数还是在average函数中,一个实现如下,供参考:
#include <stdio.h>
void average(double (*q)[2]){
int i,j;
double sum=0.0;
for(i=0;i<2;i++){ //访问对1行的每一列
sum+=q[0][i]; //把第一行的每个数的值累加到和sum中
}
printf("%lf",sum/2); //把第一行的和除以列数即为第一行的平均值,打印它
}
int main(void){
double arr[3][2];
double (*p) [2] = arr; //使用一个指向2个double类型元素的数组的指针来指向3行2列的二维数组第一行
int i,j;
for(i=0;i<3;i++){
for(j=0;j<2;j++){ //用这个指针可以像使用二维数组名那样来访问这个3行2列的二维数组,给他赋值
scanf("%lf",&p[i][j]);
}
}
average(p);
}