##Y3HWlb2Ya##PAGE二维函数指针函数平均值二维函数指针函数平均值
#include <stdio.h>
int main()
{
float average(float(*p)[3], int n);
int n = 2; //两行
//printf("请输入行数:");
//scanf("%d", &n);
float arr[n][3];
int i, j;
printf("请输入%d行3列的数组:", n);
for(i = 0; i < n; ++i){
for(j = 0; j < 3; ++j)
scanf("%f", &arr[i][j]);
}
printf("平均值为:%.2f\n", average(arr, n));
return 0;
}
float average(float(*p)[3], int n)
{
float sum = 0;
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < 3; j++)
sum += p[i][j];
}
float mean = sum / (3 * n);
return mean;
}
代码如下:
#include <stdio.h>
float average(float(*p)[3], int n)
{
float ave = 0;
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < 3; j++)
ave += *(*(p+i)+j);
}
ave /= (3 * n);
return ave;
}
int main()
{
float a[][3] = { {1,2,3},{2,3,4} };
float ave = average(a, 2);
printf("%f", ave);
return 0;
}
或者
#include <stdio.h>
float average(float(*p)[3], int n)
{
float ave = 0;
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < 3; j++)
ave += p[i][j];
}
ave /= (3 * n);
return ave;
}
int main()
{
float a[][3] = { {1,2,3},{2,3,4} };
float ave = average(a, 2);
printf("%f", ave);
return 0;
}
解答如下
#include<stdio.h>
float average(float (*p)[3],int n)
{
float sum=0;
for(int i=0; i<n; i++)
for(int j=0; j<3; j++)
{
sum+=p[i][j];
}
return sum/(n*3);
}
int main()
{
float p[2][3];
printf("输入2行3列数组:\n");
for(int i=0; i<2; i++)
for(int j=0; j<3; j++)
scanf("%f",&p[i][j]);
printf("平均值:%f\n",average(p,2));
return 0;
}